Swift 根据用户Firebase登录状态显示视图控制器
在我的应用程序中,我希望根据用户是否已登录显示不同的ViewController。例如,如果用户登录到当前VC_A,如果没有,则显示VC_B。我在我的VC_登录中尝试了以下代码:Swift 根据用户Firebase登录状态显示视图控制器,swift,firebase,uiviewcontroller,swift3,Swift,Firebase,Uiviewcontroller,Swift3,在我的应用程序中,我希望根据用户是否已登录显示不同的ViewController。例如,如果用户登录到当前VC_A,如果没有,则显示VC_B。我在我的VC_登录中尝试了以下代码: if let user = FIRAuth.auth()?.currentUser { let vc = self.storyboard?.instantiateViewController(withIdentifier: "vc_home") as! ViewController_Home
if let user = FIRAuth.auth()?.currentUser {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "vc_home") as! ViewController_Home
self.present(vc, animated: true, completion: nil)
} else {
// Do Nothing
}
您可以这样做(提示在代码注释中):
或者可以使用三元条件运算符,如下所示:
FIRAuth.auth()?.currentUser?.uid == nil ? presentViewControllerB() : presentViewControllerA()
func presentViewControllerA() {
// call if logged in
}
func presentViewControllerB() {
// call if not logged in
}
对于这个问题,您的原始代码中填充了else块,这比“什么都不做”您是如何处理Firebase令牌过期的?我也在做同样的事情,这对我来说很有用。如果FIRAuth.auth()?.currentUser!=nil{self.performsgue(带有标识符:“Signintobarvc”,发送方:nil)}
FIRAuth.auth()?.currentUser?.uid == nil ? presentViewControllerB() : presentViewControllerA()
func presentViewControllerA() {
// call if logged in
}
func presentViewControllerB() {
// call if not logged in
}