Firebase匿名ID的常量如何

Wii*_*ard 6 firebase swift firebase-authentication

我正在使用Firebase实时数据库构建应用程序.该应用程序最初将主要脱机,但我们计划稍后进行在线更新.我打算使用匿名登录,为用户获取ID并将所有数据存储在此ID下:

Auth.auth().signInAnonymously(completion: { (user, error) -> Void })
Run Code Online (Sandbox Code Playgroud)

登录后,我得到一个看起来像这样的ID: pCfgFOvEYEYvfWHaaaaavKgs8h33

是否保证此ID 在给定设备上始终保持不变?我找不到任何关于此的文档.

use*_*706 14

这是我使用 Flutter 发现的:

  • 如果您调用FirebaseAuth.signInAnonymously()两次FirebaseAuth.signOut()而中间没有调用,您将获得AuthResult.user.uid与第一次调用相同的 uid (来自 )。即使您关闭应用程序并调用,情况也是如此FirebaseAuth.signInAnonymously()
  • 如果你FirebaseAuth.signOut()再打电话 FirebaseAuth.signInAnonymously(),你会得到一个新的 uid
  • 如果您卸载应用程序并调用FirebaseAuth.signInAnonymously(),您将获得与之前安装不同的 uid

总之,如果您在卸载应用程序signInAnonymously()之后或之后调用,您会获得一个新的 uid。signOut()


Fra*_*len 7

用户的UID 永远不会改变.因此,在您匿名登录用户后,UID将保持不变,直到您signInAnonymously再次打电话或直到您打电话为止signout.

  • 如果用户卸载应用程序并再次重新安装该怎么办?UID会改变吗? (9认同)
  • 是的,当您将帐户链接到**匿名帐户时,合并的帐户会保留该匿名帐户的 UID。这实际上是帐户链接的主要用例,因此我建议尝试一下。 (3认同)
  • 太好了,我再指望它:)根据`signInAnonymously`的文档:“如果已经有一个匿名用户登录,则该用户将被返回。”,因此似乎可以多次调用它。而不生成新的ID。 (2认同)
  • 很抱歉在这么旧的内容上发帖,但是,如果您将匿名帐户链接到其他内容(例如 Google Play 或游戏中心)怎么办?userId 会保持不变吗/有没有办法保持匿名? (2认同)