【问题标题】:How to maintain user session after exiting app in Firebase在 Firebase 中退出应用程序后如何保持用户会话
【发布时间】:2016-09-28 22:09:13
【问题描述】:

我有一个使用 Firebase 作为后端的应用。我的应用使用简单的电子邮件和密码登录实现 Firebase-Authentication API 进行身份验证。

除了一个问题,一切都很好。即使在用户关闭应用程序后,我也想保持用户会话。

FIRAuth.auth()?.currentUser?具有当前用户的所有用户属性(例如:uid、电子邮件、令牌等...),效果很好。我注意到的问题是 FIRAuth.auth()?.currentUser?不是持久的。所以退出应用重新启动后,返回null。

我不想在用户每次打开应用重新登录时都询问他们。有没有办法解决这个问题?

【问题讨论】:

标签: ios swift firebase firebase-authentication


【解决方案1】:

Firebase 应该已经通过应用启动跟踪您的用户。

您的问题可能在于直接使用 FIRAuth.auth()?.currentUser? 而不是推荐的方法。

获取当前用户的推荐方法是设置监听器 在 Auth 对象上:

FIRAuth.auth()?.addStateDidChangeListener { auth, user in
  if let user = user {
    // User is signed in.
  } else {
    // No user is signed in.
  }
}

通过使用侦听器,您可以确保 Auth 对象不在 中间状态——比如初始化——当你得到当前 用户。

在我自己的应用程序中,我同时使用两者。如果第一种方法不存在用户,则转到第二种方法,如果失败,则显示登录/注册屏幕。

【讨论】:

  • 啊!我刚刚尝试过这种方法,你是绝对正确的。我想我一定是错过了什么。非常感谢您的回复。
  • 我应该把这个条件放在哪里?如果不在登录视图控制器中?
  • 随心所欲。您需要获取当前用户的任何地方。我个人将所有这些代码包装在我自己的类中。
【解决方案2】:

FirAuth 已重命名为 Auth

请使用最新的 Firebase pod

【讨论】:

    猜你喜欢
    • 2011-09-03
    • 2013-07-20
    • 1970-01-01
    • 2020-10-01
    • 2018-07-14
    • 2018-04-15
    • 2015-11-22
    • 2021-07-30
    • 2012-02-27
    相关资源
    最近更新 更多