Updated Answer
Solution for Latest Firebase SDK - DOCS
// 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 no longer needed deinit { if let listener = authListener { Auth.auth().removeStateDidChangeListener(authListener) } }
Original solution
Solution in Swift 3
override func viewDidLoad() { super.viewDidLoad() FIRAuth.auth()!.addStateDidChangeListener() { auth, user in if user != nil { self.switchStoryboard() } } }
Where switchStoryboard() is located
func switchStoryboard() { let storyboard = UIStoryboard(name: "NameOfStoryboard", bundle: nil) let controller = storyboard.instantiateViewController(withIdentifier: "ViewControllerName") as UIViewController self.present(controller, animated: true, completion: nil) }
A source
source share