facebookLogin function
Implementation
Future<String?> facebookLogin() async {
try {
localSettings.saveLogin("", "", "");
if (!kIsWeb)
await FacebookAuth.instance.logOut();
LoginResult result = await FacebookAuth.instance.login();
userAccountData.userSocialLogin = "facebook";
final AuthCredential credential = FacebookAuthProvider.credential( // String accessToken
result.accessToken!.token,
);
var t = await FirebaseAuth.instance.signInWithCredential(credential);
final User? user = t.user;
if (user == null)
return "user == null";
var querySnapshot = await FirebaseFirestore.instance.collection("listusers").doc(user.uid).get();
var data = querySnapshot.data();
if (data != null && data.isNotEmpty)
return null;
FirebaseFirestore.instance.collection("listusers").doc(user.uid).set({
"visible": true,
"phoneVerified": false,
"email": user.email,
"phone": "",
"name": user.displayName,
"date_create" : FieldValue.serverTimestamp(),
"socialLogin" : "facebook"
});
//_message("Sign In ${user!.uid} with Facebook");
} catch (ex) {
return "facebookLogin " + ex.toString();
}
return null;
}