【问题标题】:Logout on Facebook's Firebase在 Facebook 的 Firebase 上注销
【发布时间】:2017-06-19 12:25:03
【问题描述】:

之前有人问过这个问题: Firebase sign out not working in Swift Logging a user out with Firebase 3 and Swift still shows the `currentUser` Firebase - iOS Swift: FIRAuth.auth().signOut() not signing out current user

但是,所有答案都不适用于我。我有用户可以登录的 VC 1,在 viewdidappear 中我有一个打印用户?.uid 的打印。在 VC 2 中,我有一个应该注销用户并返回 VC 1 的按钮。VC 2 中的代码:

@IBAction func logOut(_ sender: UIButton) {
    if FIRAuth.auth()?.currentUser != nil {
        do {
           try! FIRAuth.auth()!.signOut()

        } catch let error as NSError {
            print(error.localizedDescription)
        }
    }
    FBSDKAccessToken.setCurrent(nil)
    loggedIn = false
    storedValuesData.setValue(nil, forKey: "savedLoginEmail")
    storedValuesData.setValue(nil, forKey: "savedLoginPassword")
    jumpToVC1()
}

当我回到 VC 1 时,当用户按下注销按钮时,打印再次打印用户的 UID。但是该用户应该被注销,因此打印应该为零。如何确保仅在确定用户已注销时才显示 VC 1?我认为完成块会很好,但我不确定这将如何在这里工作......

【问题讨论】:

    标签: swift firebase firebase-authentication


    【解决方案1】:

    您不需要完成块,因为该方法是同步的。

    @IBAction func logOut(_ sender: UIButton) {
        guard FIRAuth.auth()?.currentUser != nil else {
            return
        }            
    
        do {
           try FIRAuth.auth()?.signOut()
           FBSDKAccessToken.setCurrent(nil)
           loggedIn = false
           storedValuesData.setValue(nil, forKey: "savedLoginEmail")
           storedValuesData.setValue(nil, forKey: "savedLoginPassword")
           jumpToVC1()
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    }
    

    【讨论】:

      【解决方案2】:

      AccessToken.current=nil 是有效的。因为注销不是逆转它。

        do {
                    try Auth.auth().signOut()
                    AccessToken.current=nil
      
      
                    return true
                  } catch {
                    return false
                  }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-16
        • 2012-07-24
        • 2011-09-08
        • 2020-08-30
        • 2011-12-18
        • 1970-01-01
        • 2017-07-30
        • 1970-01-01
        相关资源
        最近更新 更多