Firebase匿名ID的常量如何

时间:2017-12-17 11:04:17

标签: swift firebase firebase-authentication

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

Auth.auth().signInAnonymously(completion: { (user, error) -> Void })

登录后,我会看到类似这样的ID:pCfgFOvEYEYvfWHaaaaavKgs8h33

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

4 个答案:

答案 0 :(得分:7)

用户的UID 从不更改。因此,在您匿名登录用户后,UID将保持不变,直到您再次致电signInAnonymously或致电signout为止。

答案 1 :(得分:2)

你应该check this out

  

Firebase还允许匿名身份验证会话,这通常是   用于在等待客户端时保留少量数据   使用永久身份验证方法进行身份验证。 这些匿名会话   可以配置为持续数天,数周,数月甚至数年......直到   用户使用永久登录方法登录或清除其浏览器   缓存。 Web应用程序通常使用本地数据存储,如sessionStorage或   localStorage完成类似的任务。

无法保证ID在给定设备上始终保持不变。 Firebase将匿名身份验证会话存储到浏览器localStorage。如果用户以隐身模式/隐私浏览模式,其他浏览器打开您的应用程序,或者他们清除浏览器的localStorage,firebase将发出另一个用户ID。

答案 2 :(得分:1)

如果您匿名登录,则您的UID将保持不变,直到您注销。注销后,再次登录,您将获得一个新的UID。甚至在用户卸载应用程序时,您也将再次获得UID。

答案 3 :(得分:1)

这是我在Flutter上找到的东西:

  • 如果您两次调用FirebaseAuth.signInAnonymously()而没有在两者之间调用FirebaseAuth.signOut(),则您将得到与第一次调用相同的uid(来自AuthResult.user.uid)。即使关闭应用程序并调用FirebaseAuth.signInAnonymously()
  • ,也是如此。
  • 如果您先致电FirebaseAuth.signOut(),然后再致电FirebaseAuth.signInAnonymously(),则会得到一个新的uid。
  • 如果您卸载应用程序并调用FirebaseAuth.signInAnonymously(),则会获得与上次安装不同的uid

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