我有一个应用程序使用Firebase作为后端。我的应用程序使用简单的电子邮件和密码登录实现Firebase-Authentication API进行身份验证。
除了一个问题之外,一切都很好。我想要保持用户会话,即使用户关闭了应用程序。
FIRAuth.auth()?.currentUser?拥有所有用户属性(例如: uid、电子邮件、令牌等)对于当前用户来说,这是非常好用的。我注意到的问题是FIRAuth.auth()?.currentUser?不是持久的。因此,在退出应用程序并再次启动后,它将返回null。
我不想让用户每次打开应用程序时都要再次登录。有什么办法可以解决这个问题吗?
发布于 2016-05-31 12:09:09
Firebase应该已经通过应用程序启动来跟踪用户了。
您的问题可能是直接使用FIRAuth.auth()?.currentUser?,而不是推荐的方法。
获取当前用户的推荐方法是在Auth对象上设置一个监听器:
如果让用户=用户{ //用户已登录,则FIRAuth.auth()?.addStateDidChangeListener { auth,user in。}否则{ //没有用户登录。}}
通过使用侦听器,您可以确保在获取当前用户时,Auth对象不处于中间状态,例如初始化。
在我自己的应用程序中,我两者都使用。如果用户在第一种方法中不存在,则移动到第二种方法,如果失败,则显示登录/注册屏幕。
发布于 2018-03-03 06:51:26
FirAuth已重命名为Auth
请使用最新的Firebase pod
https://stackoverflow.com/questions/37536499
复制相似问题