首页 > 解决方案 > Firebase 匿名身份验证商店 ID

问题描述

我想知道 Firebase 匿名身份验证究竟是如何工作的?当用户启动我的应用程序时,它会使用 auth.SignInAnonymously() 匿名登录,但每次他重新启动应用程序时,它都会生成一个新 ID。如何使用相同的 ID 登录用户(即与 deviceID 相关或类似的东西)。

例如,服务 Playfab 具有三个函数:LoginWithIOSDeviceID、LoginWithAndroidDeviceID 和 LoginWithCustomId。这会让事情变得容易得多。如何使用 Firebase Auth 解决这个问题?由于以下规则,我需要对数据库进行某种身份验证:

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}

非常感谢您的帮助!此致!

标签: firebaseauthenticationunity3dfirebase-authenticationanonymous

解决方案


您好,感谢您的回答。与此同时,我与 Firebase 支持人员进行了交谈,我们发现了错误。我在身份验证初始化之后但在它能够从缓存恢复会话之前立即调用了登录。

为了提供更多上下文,当用户进行身份验证时,SDK 将获得一个 ID 令牌,用于发出经过身份验证的请求。它有 1 小时的到期时间。SDK 还将获得一个 Refresh Token,一旦当前的 ID Token 即将到期,SDK 将使用它来获取一个新的 ID Token。SDK 会自动处理这个问题,对于用户来说,会话​​看起来永远不会过期。当用户打开应用时,当前的 ID Token 可能会过期,所以 SDK 会抓取存储的 ID Token 和 Refresh Token,如果需要,它会获取一个新的 ID Token。

现在,在我等待恢复会话线程的返回后,它可以正常工作:-)

再次感谢您的回答!


推荐阅读