I think your problem is here in the method - (void)signInWithProviderUI:(id<FIRAuthProviderUI>)providerUI .
The delegate method is called in the dismissViewControllerAnimated:completion: block.
[self.navigationController dismissViewControllerAnimated:YES completion:^{ [self.authUI invokeResultCallbackWithUser:user error:error]; }];
As you can see from the Apple docs, it is expected that this method will be called on a modally represented viewController. You show it as the root view controller. Try displaying it with a modal from the UIViewController , and everything should work out. To debug this attempt and set a breakpoint on line 193 to see that it doesn't hit. I would be very surprised if this does not work when you automatically show authController.
Come up with a possible solution to your problem (I assume that you want the user to be signed before using your application). The following is a simplification of what I am currently using in the application.
EDIT : Updated for the new FirebaseUI syntax 1.0.0.
class MainTabController: UITabBarController, FIRAuthUIDelegate { let authUI: FUIAuth? = FUIAuth.defaultAuthUI() override func viewDidLoad() { super.viewDidLoad() var authProviders = [FUIFacebookAuth(), FUIGoogleAuth()] authUI.delegate = self authUI.providers = authProviders
Chris source share