googleLogin function
Implementation
Future<String?> googleLogin() async {
localSettings.saveLogin("", "", "");
try {
final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
final GoogleSignInAuthentication googleAuth = await googleUser!.authentication;
final googleAuthCredential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
userAccountData.userSocialLogin = "google";
UserCredential userCredential = await FirebaseAuth.instance.signInWithCredential(googleAuthCredential);
if (userCredential.user == null)
return "userCredential.user == null";
var querySnapshot = await FirebaseFirestore.instance.collection("listusers").doc(userCredential.user!.uid).get();
var data = querySnapshot.data();
if (data != null && data.isNotEmpty)
return null;
FirebaseFirestore.instance.collection("listusers").doc(userCredential.user!.uid).set({
"visible": true,
"phoneVerified": false,
"email": userCredential.user!.email,
"phone": "",
"name": userCredential.user!.displayName,
"date_create" : FieldValue.serverTimestamp(),
"socialLogin" : "google"
});
dprint("Sign In ${userCredential.user} with Google");
} catch (ex) {
return "googleLogin " + ex.toString();
}
return null;
}