ios - 未在 Firebase 中使用 Google 身份验证获取电子邮件

标签 ios swift firebase firebase-authentication google-authentication

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

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

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

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

最佳答案

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

enter code here

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

关于ios - 未在 Firebase 中使用 Google 身份验证获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37995180/

相关文章:

ios - 核心动画不适用于 "alpha"值

ios - Facebook SDK 4.0 - currentAccessToken 在 loginButton didCompleteWithResult 中仍然为零

ios - Spritekit 场景内容被放大

html - Safari CSS 字体颜色问题

android - 每个应用程序一个 Firebase google json 配置文件?

未在 REST 服务器上验证来自 Flutter App 的 Firebase Id token

iOS - 在 Localizable.strings 中用粗体字符串强调

ios - NotificationCenter.default.addObserver 未访问该方法

ios - 查找 'unexpectedly found nil' 的文件和行

javascript - 使用 jQuery 检查值数组