Swift: auto-login user with Firebase

I want to automatically log into the system if it is already signed and just goes to the main view, but the code works twice, and you can see the transistor instead of the displayed view. How to fix it?

AppDelegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch.slideMenuController FIRApp.configure() FIRAuth.auth()?.addAuthStateDidChangeListener { auth, user in if user != nil { // User is signed in. print("Automatic Sign In: \(user?.email)") let storyboard = UIStoryboard(name: "Main", bundle: nil) let initialViewController = storyboard.instantiateViewControllerWithIdentifier("EmployeeRevealViewController") self.window!.rootViewController = initialViewController } else { // No user is signed in. } } return true } 

Magazine

 2016-06-06 01:00:55.585 Untitled[13009:6258910] Configuring the default app. 2016-06-06 01:00:55.657 Untitled[13009:] <FIRAnalytics/INFO> Firebase Analytics v.3200000 started 2016-06-06 01:00:55.666 Untitled[13009:] <FIRAnalytics/INFO> To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled 2016-06-06 01:00:55.714 Untitled[13009:6258910] Firebase Crash Reporting: Successfully enabled 2016-06-06 01:00:55.739: <FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO 2016-06-06 01:00:55.739: <FIRInstanceID/WARNING> Failed to fetch APNS token Error Domain=com.firebase.iid Code=1001 "(null)" 2016-06-06 01:00:55.760: <FIRMessaging/INFO> FIRMessaging library version 1.1.0 2016-06-06 01:00:55.781: <FIRMessaging/WARNING> FIRMessaging AppDelegate proxy enabled, will swizzle app delegate remote notification receiver handlers. Add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO 2016-06-06 01:00:55.788 Untitled[13009:] <FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist Automatic Sign In: Optional(" mohamed.mohd@hotmail.com ") 2016-06-06 01:00:56.759: <FIRInstanceID/WARNING> APNS Environment in profile: development Automatic Sign In: Optional(" mohamed.mohd@hotmail.com ") 2016-06-06 01:00:57.811 Untitled[13009:] <FIRAnalytics/INFO> Firebase Analytics enabled 
+7
ios swift firebase
source share
3 answers

Try:

 if let alreadySignedIn = FIRAuth.auth()?.currentUser { // segue to main view controller } else { // sign in } 
+6
source share

Regarding the updated documentation, this is the recommended way to do this based on the Firebase documentation, and it worked for me:

 if Auth.auth().currentUser != nil { // User is signed in. // ... } else { // No user is signed in. // ... } 

Firebase has changed its naming convention, most notably:

FIRAuth renamed Auth

Also for best results, I put this inside viewDidAppear () as follows:

 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(true) if Auth.auth().currentUser != nil { performSegue(withIdentifier: "yourIdentifier", sender: self) } } 
+2
source share

Without the Firebase 4 id and swift 4, it worked fine for me ...

 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(true) if Auth.auth().currentUser != nil { let newViewController: YourViewController = YourViewController() self.present(newViewController, animated: true, completion: nil) } } 
0
source share

All Articles