Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Not getting the email using Google Authentication in Firebase

I am using the code provided by Firebase for Google Authentication and somehow, the authentication was successful but the email was not correctly imported to Firebase.

https://firebase.google.com/docs/auth/ios/google-signin

As you can see in the screenshot below, the email is blank. When I looked at the debugger, it is showing nil.
I clicked allow viewing email during authentication but I think there are still some settings that was not done correctly. Could someone help me to take a look? I am interested to use the email to create the username for each user.

enter image description here

func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
    if let error = error {
        print(error.localizedDescription)
        return
    }

    let authentication = user.authentication
    let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken,
                                                                 accessToken: authentication.accessToken)
    FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in
        if error != nil {
            print(error?.localizedDescription)
            return
        }

        print("User logged in with Google...")
        self.performSegueWithIdentifier("ToHome", sender: nil)
    }
}
like image 869
Daryl Wong Avatar asked Jun 23 '16 14:06

Daryl Wong


People also ask

What should I import for Firebase Authentication with email and password?

For a user to sign up on our application with their email address and password, we must pass the user's credentials to the createUserWithEmailAndPassword function imported from the firebase/auth subpackage.


1 Answers

The email is not showing on firebase console because you are allowing users to create multiple accounts with the same email. If you navigate to Auth -> Sign-in method you can set the option to Avoid creating multiple accounts with the same e-mail. After doing so the emails will start to appear when creating the user.

enter code here

Not sure here but, if you still want to create multiple accounts and have the user email on the application side I guess that you will need to store the email on firebase database when creating the user.

like image 161
adolfosrs Avatar answered Oct 16 '22 05:10

adolfosrs