2

我正在尝试允许用户按照 FirebaseUI 教程使用 Google 帐户登录。当我进入显示的浏览器 vc 时,我只是被带到 Google 主页并且从未登录。唯一的选择是单击完成并返回错误Error Domain=com.google.GIDSignIn Code=-5 "The user canceled the sign-in flow." UserInfo={NSLocalizedDescription=The user canceled the sign-in flow.} 这真的很令人沮丧,并且正在支持我的整个团队,因为我们可以't get auth 工作,所以有人知道如何解决这个问题吗?

注意我使用的是 iOS 9。我不确定这是否与此有关。

4

3 回答 3

4

从 Firecast 视频中遇到同样的问题,您需要在 AppDelegate.swift 中添加回调

func application(application: UIApplication,
  openURL url: NSURL, options: [String: AnyObject]) -> Bool {
    return GIDSignIn.sharedInstance().handleURL(url,
        sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String,
        annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}

参考https://firebase.google.com/docs/auth/ios/google-signin

于 2016-08-14T12:06:16.183 回答
0

我面临着同样的问题。我同时使用了 react-native-google- signin和react-native-fbsdk在react-native-google-signin上找到解决方案,指出问题 。

问题是 react-native-google-signin 与 AppDelegate.m 中的 facebook sdk 冲突。

要解决此问题,请按如下方式编辑 AppDelegate.m:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

  if ([url.scheme hasPrefix:@"fb"]) {
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                                       annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
            ];


  }else{
    return [[GIDSignIn sharedInstance] handleURL:url
                               sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                      annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];


      }
}

这个解决方案对我有用。

于 2018-08-10T07:57:36.773 回答
0

对于斯威夫特 4

func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {

if (url.scheme?.hasPrefix("fb"))! {
   return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, options: options) 
}
else{
   return GIDSignIn.sharedInstance().handle(url,sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,annotation: [:])
   }
}
于 2018-11-02T11:55:34.047 回答