Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Firebase匿名ID的常量是多少_Swift_Firebase_Firebase Authentication - Fatal编程技术网

Swift Firebase匿名ID的常量是多少

Swift Firebase匿名ID的常量是多少,swift,firebase,firebase-authentication,Swift,Firebase,Firebase Authentication,我正在用Firebase实时数据库构建一个应用程序。该应用程序最初主要是离线的,但我们计划稍后进行在线更新。我计划使用匿名登录,为用户获取ID,并将其所有数据存储在此ID下: Auth.auth().signInAnonymously(completion: { (user, error) -> Void }) 登录后,我得到一个类似以下内容的ID:pcfgfoveyeyvfwhaaaavkgs8h33 是否保证此ID在给定设备上始终保持不变?我找不到有关此的任何文档。您应该: Fire

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

Auth.auth().signInAnonymously(completion: { (user, error) -> Void })
登录后,我得到一个类似以下内容的ID:
pcfgfoveyeyvfwhaaaavkgs8h33

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

您应该:

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


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

用户的UID从不更改。因此,在您以匿名方式登录用户后,UID将保持不变,直到您再次以匿名方式调用
,或者直到用户卸载应用程序。

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

以下是我使用颤振的发现:

  • 如果您两次调用
    FirebaseAuth.signinanoymous()
    而没有在其间调用
    FirebaseAuth.signOut()
    ,则会得到与第一次调用相同的uid(来自
    AuthResult.user.uid
    )。即使您关闭应用程序并调用
    FirebaseAuth.signinanoymously()
  • 如果调用
    FirebaseAuth.signingout()
    ,然后调用
    FirebaseAuth.signinanoymously()
    ,则会得到一个新的uid
  • 如果卸载该应用程序并调用
    FirebaseAuth.signinanoymously()
    ,您将获得与上次安装不同的uid

是摘要,如果在
注销()后或卸载应用程序后以匿名方式调用
则会获得一个新的uid。

每个设备将随机获得一个唯一的
uid
。除非按照Frank下面的回答注销,否则它不会改变。
uid
在出厂时重置设备并重新安装应用程序时是否保持不变?太棒了,我可以指望:)根据
的文档,以匿名方式登录:“,如果已经有匿名用户登录,则将返回该用户。”,所以它似乎可以被多次调用而不生成新的ID..哦?这对我来说是新鲜事。许多开发者在过去一直在努力解决这个问题,因此这将是一个受欢迎的变化。如果用户卸载应用程序并重新安装它会怎么样?UID会改变吗?@FrankvanPuffelen是否有办法在使用
登录/注销时保持相同的UID?我们跟踪一些用户数据,我们真的希望将其链接到uid而不是设备ID。一旦uid消失,它就无法恢复。在这种情况下,您需要实现自己的自定义登录。但问题是:你需要根据设备ID重新安装它。