我正在尝试允许用户按照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.}
这真的很令人沮丧,并且由于我们无法使身份验证工作,因此正在备份我的整个团队,那么有谁知道如何解决这个问题?
注意 我使用的是 iOS 9。我不确定这是否与此有关。
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
我遇到了同样的问题。我同时使用了react-native-google-signin和react-native-fbsdk。找到解决方案,指出反应原生谷歌登录的问题。
问题是 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]];
}
}
这个解决方案对我有用。
对于 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: [:])
}
}