Eog*_*sey 5 firebase swift firebase-authentication
我正在使用 Firebase 来处理我的应用程序的用户注册和登录。但是,如果我登录,然后完全关闭我的应用程序 - 用户将被迫重新登录。我想保持用户登录状态,除非他们单击“注销”
我的登录代码是这样的:
Auth.auth().signIn(withEmail: email, password: password, completion: {(user, error) in
if let firebaseError = error {
print(firebaseError.localizedDescription)
return
}
self.presentTabBar()
})
}
}
Run Code Online (Sandbox Code Playgroud)
除非明确告知注销,否则如何保持该用户登录状态?
这是 2020 年的一个方便的完整示例:
在 iOS+Firebase 应用程序中的任何位置,您都可以简单地说:
guard let uid = Auth.auth().currentUser?.uid else {
return print("no current user!")
}
Run Code Online (Sandbox Code Playgroud)
因此,在应用程序的启动屏幕上,只需:
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()
}
Run Code Online (Sandbox Code Playgroud)
就是这么简单。那么然后像往常一样...
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5433 次 |
| 最近记录: |