24小时后Firebase授权奇怪状态

时间:2016-04-20 04:53:54

标签: ios xcode swift firebase

据我所知,默认情况下,Firebase会在24小时后使登录令牌失效。但是,在这段时间之后,我发现这种行为很奇怪。当应用程序运行时,它会检查用户是否已登录,如果是,则进入应用程序,否则它将保留在登录屏幕上:

if self.ref.authData != nil
{
   self.performSegueWithIdentifier("mainTabSegue", sender: self)
}

除非令牌在24小时后过期,否则此工作正常。然后会发生的是,应用程序仍然会看到authData不是nil,它会将它发送到下一个VC。下一个VC使用UID,然后导致应用程序崩溃。再次运行应用程序将显示authData实际上是nil,并且将要求用户按预期登录。

所以问题是,在24小时后,当用户显然没有登录时,为什么authData不是nil? Firebase文档似乎表明,检查authData如上所述是确定用户是否已登录的正确方法。

1 个答案:

答案 0 :(得分:0)

如果从authData中提取uid,则在segue之前,您可以将该用户传递给第一个视图控制器。如果您将用户对象传递给App Delegate中构建的第一个VC,那么您的应用程序不会崩溃。我依稀记得我的应用程序发生了类似的事情(即它认为用户已登录但后来又更改回登录)。我不确定为什么会发生这种情况但应用程序试图从中断的地方开始尝试?

您也可以在Firebase上更改令牌到期时长,如您所知。