调用 updateProfile() 方法后,Firebase 用户不再匿名
Posted
技术标签:
【中文标题】调用 updateProfile() 方法后,Firebase 用户不再匿名【英文标题】:Firebase user no longer anonymous after calling updateProfile() method 【发布时间】:2018-05-28 14:26:18 【问题描述】:在 android 应用程序中,我创建了一个匿名用户,然后在用户决定登录时将此用户的数据迁移到 Google/Facebook 身份验证帐户。
在使用 FirebaseAuth updateProfile() 方法之前,这一直运行良好,此后当您调用 isAnonymous() 方法时,用户不再是匿名的。
来自 Firebase API 文档 - https://developers.google.com/android/reference/com/google/firebase/auth/FirebaseUser.html#isAnonymous():
isAnonymous():
如果用户是匿名的,则返回 true;也就是说,用户帐户是 使用 signInAnonymously() 创建并且尚未链接到另一个 具有 linkWithCredential(AuthCredential) 的帐户。
FirebaseUser updateProfile() 方法:
FirebaseAuth.getInstance().currentUser?.updateProfile(
UserProfileChangeRequest.Builder()
.setDisplayName("Anonymous User")
.build())
调用上述方法,以便稍后在应用程序中检查匿名用户的显示名称并将其写入数据库等。
根据 API 文档,在调用 linkWithCredential() 或用户使用身份验证提供程序方法登录之前,用户被认为是匿名的,那么为什么 updateProfile() 方法会使匿名用户不再匿名?
【问题讨论】:
firebaser here 仅设置用户的显示名称不应更改其匿名状态。这可能是一个错误。我们正在四处寻找它的来源,何时引入。 很高兴能帮上忙,弗兰克!感谢您花时间检查错误。 【参考方案1】:firebaser 在这里
这是 Firebase Android SDK 中的一个错误。自 2016 年 I/O 前后推出 9.0 版以来,它就一直存在。现在我们知道了,它将在即将发布的版本中修复(虽然我还不知道会是哪个版本)。
【讨论】:
以上是关于调用 updateProfile() 方法后,Firebase 用户不再匿名的主要内容,如果未能解决你的问题,请参考以下文章
新建 Firebase 期间的 UpdateProfile()