在 Firebase 中使用 Google 身份验证未收到电子邮件
Posted
技术标签:
【中文标题】在 Firebase 中使用 Google 身份验证未收到电子邮件【英文标题】:Not getting the email using Google Authentication in Firebase 【发布时间】:2016-10-25 23:57:06 【问题描述】:我正在使用 Firebase 提供的代码进行 Google 身份验证,不知何故,身份验证成功,但电子邮件未正确导入 Firebase。
https://firebase.google.com/docs/auth/ios/google-signin
正如您在下面的屏幕截图中看到的,电子邮件是空白的。当我查看调试器时,它显示为零。 我单击了允许在身份验证期间查看电子邮件,但我认为仍有一些设置未正确完成。有人可以帮我看看吗?我有兴趣使用电子邮件为每个用户创建用户名。
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)
【问题讨论】:
您想拥有多个帐户使用同一个电子邮件地址吗? 我刚刚禁用了多个帐户。现在我收到了电子邮件...谢谢... 听起来你们两个之间,有一个答案。你们谁可以写出来吗? @FrankvanPuffelen 刚刚做到了。我还有一个疑问,你能确认我的最后一段是否有意义吗? 如有疑问,我会删除该声明。 ;-) 【参考方案1】:该电子邮件未显示在 Firebase 控制台上,因为您允许用户使用同一电子邮件创建多个帐户。如果您导航到 Auth -> 登录方法,您可以将选项设置为 避免使用同一电子邮件创建多个帐户。这样做之后,电子邮件将在创建用户时开始出现。
这里不确定,但是,如果您仍想创建多个帐户并在应用程序端拥有用户电子邮件,我想您需要在创建用户时将电子邮件存储在 firebase 数据库中。
【讨论】:
我选择了“避免创建多个...”,并且用户仍然通过 Facebook 进行身份验证而没有电子邮件。任何其他想法为什么会发生这种情况? 那么,当我允许使用同一个电子邮件地址创建多个帐户时,如何从 firebase 获取电子邮件?【参考方案2】:您可以在列表ProviderData中搜索:
userFirebase.providerData
providerId "google.com" 像往常一样有电子邮件。
【讨论】:
以上是关于在 Firebase 中使用 Google 身份验证未收到电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
检查用户是不是在 Android 的 Firebase Google 身份验证中首次通过身份验证
在使用 Firebase 身份验证的 Unity 项目中使用 Google Drive API
请求的身份验证范围不足 - 在 Flutter 中使用 Firebase 从 Google 登录获取生日时出错