Swift 根据用户Firebase登录状态显示视图控制器

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

在我的应用程序中,我希望根据用户是否已登录显示不同的ViewController。例如,如果用户登录到当前VC_A,如果没有,则显示VC_B。我在我的VC_登录中尝试了以下代码:

 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
}