我正在try 使用Firebase身份验证在我的SWIFT应用程序中实现登录功能.如何判断用户是否已登录并将其重定向到主屏幕(如果已登录)?
我遵循了Firebase身份验证文档,并使用邮箱和密码成功设置了我的登录流.然而,当用户打开应用程序并且之前已经登录时,我想判断他们是否已经通过身份验证,并自动将他们重定向到主屏幕.为此,我try 使用100方法监听用户身份验证状态的更改,但我不确定如何使用此信息自动重定向用户.我预计如果用户已经登录,监听程序会检测到这一点并触发重定向到主屏幕
我正在try 使用Firebase身份验证在我的SWIFT应用程序中实现登录功能.如何判断用户是否已登录并将其重定向到主屏幕(如果已登录)?
我遵循了Firebase身份验证文档,并使用邮箱和密码成功设置了我的登录流.然而,当用户打开应用程序并且之前已经登录时,我想判断他们是否已经通过身份验证,并自动将他们重定向到主屏幕.为此,我try 使用100方法监听用户身份验证状态的更改,但我不确定如何使用此信息自动重定向用户.我预计如果用户已经登录,监听程序会检测到这一点并触发重定向到主屏幕
您可以使用Auth.auth().addStateDidChangeListener
方法在根视图控制器或主视图控制器中监听用户身份验证状态的更改.
当监听器被触发时,您可以通过访问Auth.auth().currentUser
属性来判断用户是否登录.如果用户已登录,则可以使用PerformSegue方法以编程方式转换到主屏幕
下面是一个示例,说明这在代码中可能是什么样子:
导入Firebase
class MainViewController: UIViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
Auth.auth().addStateDidChangeListener { [weak self] (auth, user) in
if let user = user {
// User is logged in, so redirect to home screen
self?.performSegue(withIdentifier: "HomeSegue", sender: self)
}
}
}
}