我想知道Firebase匿名身份验证的工作原理如何?当用户启动我的应用程序时,它使用auth.SignInAnonymously()匿名登录,但是每次他重新启动应用程序时,它将生成一个新的ID。如何使用相同的ID(即与deviceID相关或类似的ID)登录用户。
例如,服务Playfab具有三个功能:LoginWithIOSDeviceID,LoginWithAndroidDeviceID和LoginWithCustomId。这会使事情变得容易得多。如何使用Firebase Auth解决该问题?由于以下规则,我需要对数据库进行某种身份验证:
{
"rules": {
"users": {
"$uid": {
".write": "$uid === auth.uid"
}
}
}
}
非常感谢您的帮助! 最好的问候!
答案 0 :(得分:1)
您好,感谢您的回答。同时,我与Firebase支持进行了交谈,我们发现了错误。我在auth初始化之后但在能够从Cache恢复会话之前立即调用了登录名。
要提供更多上下文,当用户进行身份验证时,SDK将获得一个ID令牌,该令牌是用于发出经过身份验证的请求的令牌。到期时间为1小时。 SDK还将获得一个刷新令牌,一旦当前令牌即将到期,SDK将使用它来获取一个新的ID令牌。 SDK会自动处理此问题,对于用户而言,会话似乎永不过期。当用户打开应用程序时,当前的ID令牌可能已过期,因此SDK会获取已存储的ID令牌和刷新令牌,并在需要时获取新的ID令牌。
现在,在我等待恢复会话线程的返回之后,它就可以正常工作了:-)
再次感谢您的回答!