在 Firebase 中使用 Google 身份验证未收到电子邮件

Not getting the email using Google Authentication in Firebase

我正在使用 Firebase 提供的代码进行 Google 身份验证,不知何故,身份验证成功但电子邮件未正确导入 Firebase。

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

正如您在下面的屏幕截图中所见,电子邮件是空白的。当我查看调试器时,它显示为 nil。
我在身份验证期间单击了允许查看电子邮件,但我认为仍有一些设置未正确完成。有人可以帮我看看吗?我有兴趣使用电子邮件为每个用户创建用户名。

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

电子邮件未显示在 firebase 控制台上,因为您允许用户使用同一电子邮件创建多个帐户。如果您导航到 Auth -> Sign-in method,您可以将选项设置为 避免使用相同的电子邮件创建多个帐户。这样做之后,电子邮件将在创建用户时开始出现。

这里不确定,但是,如果您仍想创建多个帐户并在应用程序端拥有用户电子邮件我想您需要将电子邮件存储在 firebase 数据库中创建用户时。

您可以在列表 ProviderData 中搜索:

userFirebase.providerData

providerId "google.com" 照常有电子邮件。