signInWithFacebook method

Future<void> signInWithFacebook({
  1. required BuildContext context,
})

Implementation

Future<void> signInWithFacebook({required BuildContext context}) async {
  if (kIsWeb) {
    FacebookAuthProvider facebookProvider = FacebookAuthProvider();

    facebookProvider.addScope('email');
    facebookProvider.setCustomParameters({
      'display': 'popup',
    });

    // Once signed in, return the UserCredential
    FirebaseAuth.instance.signInWithPopup(facebookProvider).then((value) {
      loginWithUserCredential(context: context, userCredential: value);
    }).catchError((err) {
      showError(err: err, context: context);
//show the error
    });
  }
  // Trigger the sign-in flow
  final result = await FacebookAuth.instance.login();

  if (result.status == LoginStatus.success) {
    // you are logged
    final AccessToken accessToken = result.accessToken!;
    // Create a credential from the access token
    final facebookAuthCredential =
        FacebookAuthProvider.credential(accessToken.token);
    FirebaseAuth.instance
        .signInWithCredential(facebookAuthCredential)
        .then((value) {
      loginWithUserCredential(context: context, userCredential: value);
    }).catchError((err) {
      showError(err: err, context: context);
//show the error
    });
  } else {
    print(result.status);
    print(result.message);
  }
}