【发布时间】:2017-03-08 01:15:41
【问题描述】:
我正在尝试从 AppDelegate.swift 启动 google 登录,然后在登录成功后启动我的应用程序的主屏幕。
我可以
如上图所示显示google登录按钮
用户被发送到谷歌登录
用户被送回原始状态(步骤 1)
在第 3 步之后。我想将用户转到我的应用的主页。
我的代码如下。 我遇到的问题是 authUI 没有被调用。
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, FIRAuthUIDelegate {
var window: UIWindow?
var authUI: FIRAuthUI?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FIRApp.configure()
authUI = FIRAuthUI.defaultAuthUI()
authUI?.delegate = self
let providers: [FIRAuthProviderUI] = [FIRGoogleAuthUI()]
authUI?.providers = providers
// show google login button
let authViewController = authUI?.authViewController()
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = authViewController
self.window?.makeKeyAndVisible()
return true
}
func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {
return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}
func authUI(authUI: FIRAuthUI, didSignInWithUser user: FIRUser?, error: NSError?) {
// launch main view controller
}
}
编辑:这似乎与another question 重复。另一个问题的标题很笼统,只涉及几行深的细节。无论如何,我相信克里斯的回答比那里的回答更彻底。我认为这里的问题和答案都更清晰、更有针对性和更彻底,因此如果将这里的人们标记为重复,就会发生这种情况,因此只指导人们去那里是错误的。
【问题讨论】:
-
你在使用故事板吗?
-
当你说你的 authUI 没有被调用时,你的意思是 authUI 委托方法是吗?
-
是的,就是上面代码中的那个。
-
我认为你已经记录了错误和函数中返回的用户对象只是为了检查?
标签: swift firebase firebase-authentication google-authentication firebaseui