facebookLogin function

Future<String?> facebookLogin()

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;
}