相关疑难解决方法(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 - iOS Swift:FIRAuth.auth().signOut()未注销当前用户

我正在使用Firebase构建一个应用程序,该应用程序使用一个初始文件SignInViewController加载登录页面,供用户通过电子邮件进行身份验证,从而触发以下方法:

@IBAction func didTapSignIn(sender: AnyObject) {
    let email = emailField.text
    let password = passwordField.text
    FIRAuth.auth()?.signInWithEmail(email!, password: password!) { (user, error) in
        if let error = error {
            print(error.localizedDescription)
            return
        }
        self.signedIn(user!)
    }
}

func signedIn(user: FIRUser?) {
    AppState.sharedInstance.displayName = user?.displayName ?? user?.email
    AppState.sharedInstance.signedIn = true
    NSNotificationCenter.defaultCenter().postNotificationName(Constants.NotificationKeys.SignedIn, object: nil, userInfo: nil)
    performSegueWithIdentifier(Constants.Segues.SignInToHome, sender: nil)
}
Run Code Online (Sandbox Code Playgroud)

SignInViewController还检查是否有缓存的当前用户,当应用程序启动,如果是这样,迹象表明,用户在:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(true)
    //Synchronously gets the cached current user, or null if there is none.
    if let user …
Run Code Online (Sandbox Code Playgroud)

ios firebase swift firebase-authentication

6
推荐指数
2
解决办法
8286
查看次数

使用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
查看次数

标签 统计

firebase ×3

firebase-authentication ×3

swift ×3

ios ×2

xcode ×1