Firebase:如何在Google Auth方法之后获取用户电子邮件地址

标签 firebase firebase-authentication

Firebase 在其仪表板中提供了 2 个高级选项来管理重复身份验证:

首先,每个电子邮件地址有多个帐户 其次,每个电子邮件地址一个帐户

“每个电子邮件地址一个帐户”的身份验证按预期工作,但当我尝试“每个电子邮件地址多个帐户”时,身份验证回调不会返回用户的电子邮件地址(即 null),emailVerified 字段也不会为 true .

可能的原因是什么?此故障是 Firebase 自愿实现的吗?

最佳答案

这是设计使然,顶级电子邮件 currentUser.email必须是独一无二的。在“每个电子邮件多个帐户”模式下,您可以使用该电子邮件拥有多个帐户,因此在此模式下不会设置此模式(密码帐户除外),因为用户标识符会发生冲突。您可以随时通过currentUser.updateEmail' API but the Auth backend will enforce the uniqueness. You can access the provider email via the providerData on the user进行设置currentUser.providerData[0].email`。如果您使用 Google 作为提供商,并且没有在网络 SignInWithPopup/Redirect 流程中获取 Google 电子邮件,请确保询问“电子邮件”OAuth 范围。

关于Firebase:如何在Google Auth方法之后获取用户电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45475499/

相关文章:

Firebase 云消息传递 : Invalid APNs certificates

javascript - 找不到插件 "proposal-class-static-block"

ios - swift firebase如何在数据库顶部设置/添加数据

javascript - 在 Firebase Functions 中,如何更新声明?

javascript - Firebase Cloud Functions - sendToTopic() 格式错误

swift - 多个用户访问相同的 userdefault 数据 Swift

android - isSuccessful() 和 isComplete() 方法之间的区别

javascript - 在 Firebase 函数 CLI 中模拟用户创建

java - 无法将对象转换为 JSON

swift - 在 Firebase SWIFT 中通过电子邮件获取用户