gpt4 book ai didi

android - 无法从 Android/iOS 上的 FirebaseAuthentication 检索电子邮件

转载 作者:行者123 更新时间:2023-11-29 23:18:56 25 4
gpt4 key购买 nike

我在我的应用程序中使用 FirebaseAuth 和 Google/Facebook 社交登录,我们允许用户在首次登录后更改他的电子邮件,因为我们有自己的用户管理后端,并且我们在注册表中预先填写了该电子邮件。

似乎突然间我无法通过 FirebaseUser.getEmail() 方法检索用户的电子邮件地址。当我尝试使用 Facebook/Google 登录 SDK 检索电子邮件时,我可以检索到它,因此这不是隐私问题。我的电子邮件已经过验证,所以这也不成问题。

当我在 FirebaseAuth 登录后调用 AuthResult.getAdditionalUserInfo().getProfile 时,我可以看到 email 出现在 map 中。

我在这里阅读了一些关于用户无法在 Firebase 控制台中看到电子邮件但所有内容都可见的问题。 Firebase auth SDK 的版本是 16.1.0。这种行为在我们的 iOS 应用程序中也可见,因此它可能与 Android 无关,但仍然无法弄清楚为什么会发生这种情况。 docs说它将在登录时预先填充。

我理解错了吗?或者获取此电子邮件的正确方法应该是什么,以便我可以用它预填充我的表单?

最佳答案

当使用“每个电子邮件多个帐户”设置时,顶级电子邮件 user.getEmail() 对于非电子邮件(电子邮件/密码或电子邮件链接)帐户为空。您可以从 user.getProviderData().get(0).getEmail() 列表中获取电子邮件,前提是提供商存储在索引 0 中。

这是因为顶级电子邮件是唯一的,没有 2 个帐户可以共享。因此,对于使用该电子邮件创建的任何其他 OAuth 帐户(如 Facebook、Google 等),顶级电子邮件为空。

关于android - 无法从 Android/iOS 上的 FirebaseAuthentication 检索电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54801747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com