如何检查用户是否具有有效的Auth Session Firebase iOS?

11 ios firebase swift

在呈现我的应用程序的Home View控制器之前,我想检查用户是否仍然有效会话.我使用最新的Firebase API.我想如果我使用遗产,我就能知道这一点.

这是我到目前为止所做的:

我试着像这样输入Xcode:

FIRApp().currentUser()
FIRUser().getCurrentUser()
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到getCurrentUser函数.

Jor*_*uin 19

if FIRAuth.auth().currentUser != nil {
   presentHome()
} else {
   //User Not logged in
}
Run Code Online (Sandbox Code Playgroud)

对于更新的SDK

if Auth.auth().currentUser != nil {

}
Run Code Online (Sandbox Code Playgroud)

  • 这并不能证明什么。`currentUser` 指的是本地存储的数据 (2认同)

Doe*_*ata 9

Swift中的解决方案3

    // save a ref to the handler
    private var authListener: AuthStateDidChangeListenerHandle?

    // Check for auth status some where
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        authListener = Auth.auth().addStateDidChangeListener { (auth, user) in

            if let user = user {
                // User is signed in
                // let the user in?

                if user.isEmailVerified {
                    // Optional - check if the user verified their email too
                    // let the user in?
                }
            } else {
                // No user
            }
        }
    }

    // Remove the listener once it's no longer needed
    deinit {
        if let listener = authListener {
            Auth.auth().removeStateDidChangeListener(authListener)
        }
    }
Run Code Online (Sandbox Code Playgroud)

哪里switchStoryboard()

override func viewDidLoad() {
    super.viewDidLoad()

    FIRAuth.auth()!.addStateDidChangeListener() { auth, user in
        if user != nil {
            self.switchStoryboard()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

资源


Edw*_*ard 5

Swift 4 中的解决方案

override func viewDidLoad() {
    super.viewDidLoad()
    setupLoadingControllerUI()
    checkIfUserIsSignedIn()
}

private func checkIfUserIsSignedIn() {

    Auth.auth().addStateDidChangeListener { (auth, user) in
        if user != nil {
            // user is signed in
            // go to feature controller 
        } else {
             // user is not signed in
             // go to login controller
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

if Auth.auth().currentUser?.uid != nil {

   //user is logged in

    }else{
     //user is not logged in
    }
Run Code Online (Sandbox Code Playgroud)


Jea*_*yle 0

override func viewDidLoad() {
FIRAuth.auth()!.addStateDidChangeListener() { auth, user in
            // 2
            if user != nil {
                let vc = self.storyboard?.instantiateViewController(withIdentifier: "Home")
                self.present(vc!, animated: true, completion: nil)
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

来源:https://www.raywenderlich.com/139322/firebase-tutorial-getting-started-2