Won*_*r A 3 firebase swift firebase-authentication
我正在使用 firebase 登录,我需要知道如何在注销之前保持登录状态。我听说过 UserDeafults,但我不确定如何使用它。这是我的登录视图控制器:
import FirebaseAuth
import FirebaseFirestore
import Firebase
import FirebaseAnalytics
import UIKit
class LoginViewController: UIViewController {
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var loginButton: UIButton!
@IBOutlet weak var errorLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
setUpElements()
if Auth.auth().currentUser != nil {
// User is signed in.
DispatchQueue.main.async {
self.presentHomeViewController()
}
} else {
// No user is signed in.
}
}
func setUpElements() {
// Hide the error label
errorLabel.alpha = 0
// Style the elements
Utilities.styleTextField(emailTextField)
Utilities.styleTextField(passwordTextField)
Utilities.styleFilledButton(loginButton)
}
func presentHomeViewController() {
let homeViewController = self.storyboard?.instantiateViewController(identifier: Constants.Storyboard.homeViewController) as? ViewController
self.view.window?.rootViewController = homeViewController
self.view.window?.makeKeyAndVisible()
}
@IBAction func loginTapped(_ sender: Any) {
// TODO: Validate Text Fields
// Create cleaned versions of the text field
let email = emailTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
let password = passwordTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
// Signing in the user
Auth.auth().signIn(withEmail: email, password: password) { (result, error) in
if error != nil {
// Couldn't sign in
self.errorLabel.text = error!.localizedDescription
self.errorLabel.alpha = 1
}
else {
self.presentHomeViewController()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你不logOut。用户保持login状态。检查is logged in user exist:
Auth.auth().addStateDidChangeListener { auth, user in
if user != nil{
//Logged in user exist.
}
}
Run Code Online (Sandbox Code Playgroud)
为您的代码编辑:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
setUpElements()
Auth.auth().addStateDidChangeListener { auth, user in
if user != nil{
// User is signed in.
print("User is not logged out.")
self.performSegue(withIdentifier: "yourSegueId", sender: nil)
} else {
// No user is signed in.
print("No user is signed in.")
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你...
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |