我使用Firebase来处理我的用户注册和我的应用程序的登录。但是如果我登录,然后完全关闭我的应用程序,用户将被迫重新登录。我想让用户登录,除非他们点击“注销”
我的登录代码是:
        Auth.auth().signIn(withEmail: email, password: password, completion: {(user, error) in
            if let firebaseError = error {
                print(firebaseError.localizedDescription)
                return
            }
            self.presentTabBar()
        })
    }
}除非被特别告知注销,否则如何保持此用户登录?
发布于 2020-05-22 13:12:10
以下是2020年的一个方便的完整示例:
在您的iOS+Firebase应用程序中的任何地方,您都可以简单地说:
guard let uid = Auth.auth().currentUser?.uid else {
    return print("no current user!")
}因此,在应用程序的启动屏幕上,只需:
import UIKit
import Firebase
import FirebaseUI
class ViewController: UIViewController, FUIAuthDelegate {
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        guard let uid = Auth.auth().currentUser?.uid else {
            return print("no current user, hence AuthUI flow...")
            basicAuthUIFlow()
        }
        print("User .. \(Auth.auth().currentUser?.displayName)")
        continueWhenUserPresent()
    }就这么简单。所以像往常一样..。
    private func basicAuthUIFlow() {
        let authUI = FUIAuth.defaultAuthUI()
        authUI?.delegate = self
        let pp: [FUIAuthProvider] = [ FUIGoogleAuth() ]
        authUI?.providers = pp
        if let authVC = authUI?.authViewController() {
            present(authVC, animated: true)
        }
    }
    func authUI(_ authUI: FUIAuth,
      didSignInWith authDataResult: AuthDataResult?,url: URL?, error: Error?) {
        let u = authDataResult?.user
        print("Successful login via authUI \(String(describing: u?.displayName))")
        continueWhenUserPresent()
    }
    private func continueWhenUserPresent() {
        .. pushViewController .. your first screen
    }发布于 2018-02-01 11:41:59
检查用户是否已登录:
if Auth.auth().currentUser != nil {
 // User is signed in.
 // ...
} else {
  // No user is signed in.
 // ...
}如果用户已登录,则转到Home ViewController。这样,当他再次打开应用程序时,他会去Home ViewController,除非他签了FIRAuth.auth().signOut()
有关更多信息,请查看以下内容:https://firebase.google.com/docs/auth/ios/manage-users
发布于 2018-02-01 11:46:23
为了保持用户登录,您需要检查currentUser 8月会话,如果不是零,则可以将用户重定向到主屏幕。
在"setRootViewController“()代码之后从didFinishLaunchingWithOptions,调用FirebaseApp.configure方法
Swift 4
    func setRootViewController() {
        if Auth.auth().currentUser != nil {
            // Set Your home view controller Here as root View Controller
            self.presentTabBar()
        } else {
            // Set you login view controller here as root view controller
        }
    }https://stackoverflow.com/questions/48561643
复制相似问题