如何保持用户登录?迅速 [英] How do I keep a user logged in? Swift
本文介绍了如何保持用户登录?迅速的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Firebase进行登录,我需要知道如何保持登录状态,直到注销为止.我听说过UserDeafults,但不确定如何使用它.这是我的登录视图控制器:
I'm using firebase for login and I need to know how to stay logged in until I log out. I have heard about UserDeafults but I'm not sure on how to use it. Here is my login view controller:
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()
}
}
}
}
推荐答案
如果不注销
.用户保持 login
状态.对于检查已登录的用户是否存在
:
If you don't logOut
. User keeps at login
state. For check is logged in user exist
:
Auth.auth().addStateDidChangeListener { auth, user in
if user != nil{
//Logged in user exist.
}
}
这是您的Segue ID.写任何你想要的:
This your segue id. Write whatever you want :
为您的代码进行了
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.")
}
}
}
希望有帮助...
这篇关于如何保持用户登录?迅速的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文