iOS firebase授权当前用户重启应用时得到nil


Auth.auth().signIn(withEmail:

在我的情况下,当我第一次打开应用程序并像上面的代码一样登录firebase帐户时然后重新打开app

let user = Auth.auth().currentUser

user不是nil然后我重新打开app再次得到currentUser user是nil这意味着我没有登录

我让另一个应用这样做,但用户总是不为nil

我想知道为什么会发生这种情况。

Firebase在应用重启时自动恢复已认证的用户。但这需要调用服务器,这可能需要一些时间。如果您在检查还在进行的时候检查Auth.auth().currentUser,您将得到nil作为结果。

要确保在完成初始检查后获得该值,请使用验证状态侦听器,如获取当前用户的文档中的第一个代码片段所示。从那里:

Auth.auth().addStateDidChangeListener { auth, user in
// ...
}

当这个监听器第一次触发时:

  • 如果用户认证状态可以恢复,user变量将有一个值,
  • 或者是nil,如果用户没有在上次应用程序运行时登录,或者认证状态无法恢复(例如,因为帐户被禁用,或密码被更改)。

我认为这是一个很大的可能性,你可能在另一个设备上登录或在不同的配置文件上登录,不知道,你可能有一些同步问题或安全问题,做了安全测量,直到你修复安全问题

相关内容

最新更新