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/