Firebase+;iOS:处理多个身份验证提供程序
我正在创建一个应用程序来学习如何使用Firebase和Swift 3。到目前为止,我已经用facebook和google实现了身份验证。棘手的部分是AppDelegate中的func:Firebase+;iOS:处理多个身份验证提供程序,ios,facebook,firebase-authentication,Ios,Facebook,Firebase Authentication,我正在创建一个应用程序来学习如何使用Firebase和Swift 3。到目前为止,我已经用facebook和google实现了身份验证。棘手的部分是AppDelegate中的func: func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { // Works with google return
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
// Works with google
return GIDSignIn.sharedInstance().handle(url,sourceApplication: sourceApplication, annotation: annotation)
// Works with facebook
//return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
}
问题是:如果我在用户登录facebook时评论facebook行,它将不会返回应用程序。谷歌也是如此
我遵循以下指南:
谢谢你的帮助,我找到了答案。func现在是这样的,适用于谷歌和Facebook:
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
if GIDSignIn.sharedInstance().handle(url,
sourceApplication: sourceApplication,
annotation: annotation) {
return true
}
return FBSDKApplicationDelegate.sharedInstance().application(application,
open: url,
sourceApplication: sourceApplication,
annotation: annotation)
}
像这样:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let googleSignIn = GIDSignIn.sharedInstance().handle(url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
let facebookSignIn = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
return googleSignIn || facebookSignIn
}