【问题标题】:Firebase sign out then switch StoryboardFirebase 退出然后切换 Storyboard
【发布时间】:2017-07-15 16:10:20
【问题描述】:

出于某种原因,我实现退出方法的方式实际上并没有退出用户。我认为这是因为我在 Firebase 完成退出之前切换回我的登录故事板。这是我所拥有的:

try! FIRAuth.auth()!.signOut()
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "LoginStoryboard")
self.present(controller, animated: true, completion: nil)

当出现登录视图控制器时,如何确保用户退出?

【问题讨论】:

  • 用户是在控制器出现后退出,还是根本没有退出?
  • 它实际上是在注销用户,但是当我按下登录按钮时,它不会转到 Gmail 帐户选择器,它只是使用刚刚自动注销的帐户登录。
  • 知道了。在这种情况下,您还需要将用户从 google 中注销。现在,您只是将它们从 Firebase 中注销。试试GIDSignIn.sharedInstance().signOut()

标签: swift firebase firebase-authentication


【解决方案1】:

这里的关键是在您知道用户已注销之后而不是之前移动到登录视图。

signOut() 函数没有完成处理程序(嘿,firebase!添加一个),因此您必须使用另一种方法来观察状态变化。

有几种方法可以做到这一点,但一种简单的方法是为身份验证状态更改添加侦听器/观察器,并在状态更改后继续登录控制器。

类似的东西

FIRAuth.auth()?.addStateDidChangeListener { auth, user in
    if let user = user {
        // user is signed in so don't do anything
    } else {
        //the user has now signed out so go to login view controller
        // and remove this listener
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 2023-03-03
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2011-01-19
    相关资源
    最近更新 更多