首页 文章

使用FirebaseUI登录不会退出webview并抛出错误

提问于
浏览
2

我试图通过遵循FirebaseUI教程允许用户使用Google帐户登录 . 当我进入浏览器vc时,我刚刚进入谷歌主页并且我从未登录 . 唯一的选择是点击完成并返回错误 Error Domain=com.google.GIDSignIn Code=-5 "The user canceled the sign-in flow." UserInfo={NSLocalizedDescription=The user canceled the sign-in flow.} 这真的令人沮丧并且正在备份我的整个团队,因为我们不能让auth工作,所以有谁知道如何解决这个问题?

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

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

  • 0

    我面临同样的问题 . 我正在使用 react-native-google-signinreact-native-fbsdk . 在react-native-google-signin找到解决方案,指出问题 .

    问题是在AppDelegate.m中与facebook sdk发生反应 - native-google-signin冲突 .

    To fix this, edit AppDelegate.m as follows:

    - (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]];
    
    
          }
    }
    

    这个解决方案对我有用 .

  • 0

    对于Swift 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: [:])
       }
    }
    

相关问题