'Flutter: Unable to get Firebase social login email after successful login

I am using social login for my Flutter app for both iOS and Android platforms. After successful login I need to access the user's email from Firebase. I tried in different ways, however it is always null for me.

Following is my code that i am using. I am able to print the displayname.

PubSpec.yaml
  firebase_core: ^1.10.0
  firebase_auth: ^3.2.0
  google_sign_in: ^5.2.1
  flutter_facebook_auth: ^3.5.6
  firebase_remote_config: ^1.0.4
static Future<UserCredential> signInWithGoogle() async {
  
  final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
  final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth?.accessToken,
    idToken: googleAuth?.idToken,
  );
  var currentUser = FirebaseAuth.instance.currentUser;
  print(currentUser.email);
  print(currentUser.displayName);
  
  return await FirebaseAuth.instance.signInWithCredential(credential);
}


static Future<UserCredential> signInWithFacebook() async {
  final LoginResult loginResult = await FacebookAuth.instance.login();

  final OAuthCredential facebookAuthCredential = 
  FacebookAuthProvider.credential(loginResult.accessToken!.token);

  var currentUser = FirebaseAuth.instance.currentUser;
  print(currentUser.email);
  print(currentUser.displayName);

  return FirebaseAuth.instance.signInWithCredential(facebookAuthCredential);
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source