Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase+;iOS:处理多个身份验证提供程序_Ios_Facebook_Firebase Authentication - Fatal编程技术网

Firebase+;iOS:处理多个身份验证提供程序

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

我正在创建一个应用程序来学习如何使用Firebase和Swift 3。到目前为止,我已经用facebook和google实现了身份验证。棘手的部分是AppDelegate中的func:

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
}