在呈现我的应用程序的Home View控制器之前,我想检查用户是否仍然有效会话.我使用最新的Firebase API.我想如果我使用遗产,我就能知道这一点.
这是我到目前为止所做的:
我在Firebase的Slack社区发布了我的问题,没有人回答.我找到了这个,但这适用于Android:https://groups.google.com/forum/?hl = el#!topic/firebase- tot/4HdhDvVRqHc
我尝试阅读适用于iOS的Firebase文档,但我似乎无法理解它:https://firebase.google.com/docs/reference/ios/firebaseauth/interface_f_i_r_auth
我试着像这样输入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)
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)
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)
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
| 归档时间: |
|
| 查看次数: |
16277 次 |
| 最近记录: |