相关疑难解决方法(0)

Firebase签出不在Swift工作

我使用的是最新的Firebase API(3.2.1),我使用此代码检查用户是否已登录:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    if(self.navigationController != nil){
        self.navigationController!.setNavigationBarHidden(true, animated: true)
    }

    if(FIRAuth.auth() != nil){
        self.performSegueWithIdentifier("loginSuccessSegue", sender: self)
    }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,如果存在auth对象,我将切换到其他控制器.在那个控制器上,我有一个退出按钮,它正在这样做:

do{
    try FIRAuth.auth()?.signOut()
    self.performSegueWithIdentifier("logoutSegue", sender: self)
}catch{
    print("Error while signing out!")
}
Run Code Online (Sandbox Code Playgroud)

我没有得到这个操作的错误,但当我切换到登录控制器时,这个auth对象存在,我再次切换回带有数据的控制器.我还尝试检查auth中的当前用户对象,它是否存在且有效.

任何人都知道我如何正确退出?

firebase swift firebase-authentication

13
推荐指数
3
解决办法
2万
查看次数

使用Firebase 3和Swift记录用户仍会显示`currentUser`

我想在我的iOS应用程序中使用Firebase 3登录用户.这是我的代码:

do {

        databaseReference.child("Users").child(CUUID!).removeAllObservers()

        try FIRAuth.auth()?.signOut()

        print("FIRUSER - \(FIRAuth.auth()?.currentUser)")

        self.performSegueWithIdentifier("logOutSegue", sender: self)

    } catch let logOutError {

        print("Error Logging User Out - \(logOutError)")
    }
Run Code Online (Sandbox Code Playgroud)

我想要做的是如果用户成功注销,则执行segue返回登录屏幕.为了检查用户是否已注销,我打印currentUser以查看是否还有用户.我按下logOut按钮并且segue工作(没有捕获 - >没有错误),但是当print("FIRUSER - \(FIRAuth.auth()?.currentUser)")代码运行时,我仍然得到一个currentUser.为什么用户没有注销?

xcode ios firebase swift firebase-authentication

3
推荐指数
1
解决办法
3600
查看次数

在Facebook的Firebase上注销

之前会问这个问题: Firebase注销无法在Swift中正常工作 使用Firebase 3注销用户,Swift仍然显示`currentUser'Firebase -iOS Swift:FIRAuth.auth()。signOut()未注销当前用户

但是,所有答案都不适用于我。我有VC 1,用户可以在其中登录,并且在viewdidappear中,我有打印该用户的打印文件。在VC 2中,我有一个按钮,应该注销用户并返回VC1。VC2中的代码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()
}
Run Code Online (Sandbox Code Playgroud)

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

firebase swift firebase-authentication

1
推荐指数
1
解决办法
951
查看次数

标签 统计

firebase ×3

firebase-authentication ×3

swift ×3

ios ×1

xcode ×1