【发布时间】:2018-03-15 13:02:20
【问题描述】:
我正在使用 swift 在 ios 中使用 firebase。登录到应用程序后,我从我的 firebase 数据库中获取数据,这很好。现在,如果我在不注销的情况下关闭我的应用程序并在 30 分钟或大约一个小时后重新运行,我可以看到我的用户已登录,但数据不是来自数据库。在我注销并再次登录后,数据会显示出来。 以下是我在执行操作以获取数据后检查用户是否登录的代码。
if Auth.auth().currentUser?.uid == nil{
print("Logout call")
perform(#selector(handleLogout), with: nil, afterDelay: 0)
}else{
print("User Logged In")
fethUser()
}
运行应用程序一段时间后,我可以看到“用户已登录”消息,但没有获取数据。 我认为这是由于会话或令牌超时而发生的。如果是这种情况,那么如何在我的应用程序中保留登录信息?就像 paytm 或其他应用程序所做的那样,它们不需要每次我们使用应用程序时都登录。
如果帖子有任何问题,请告诉我。提前谢谢你。
【问题讨论】:
-
何时执行此检查?此外,您可能希望更改为 if Auth.auth().currentUser != nil 并确保在 didFinishLaunchingWithOptions 中调用它。请务必包含 addStateDidChangeListener 并记住 currentUser 可能为 nil,因为 auth 对象尚未完成初始化。查看Manage Users 了解一些最佳实践。这将很难真正回答,因为没有足够的代码来查看发生了什么。
标签: swift firebase firebase-realtime-database firebase-authentication