使用 FirebaseUI 登录不会退出 webview 并抛出错误
Signing in using FirebaseUI doesn't back out of webview and throws error
我试图让用户按照 FirebaseUI 教程使用 Google 帐户登录。当我进入显示的浏览器 vc 时,我只是被带到 Google 主页并且从未登录过。唯一的选择是单击完成 returns 错误 Error Domain=com.google.GIDSignIn Code=-5 "The user canceled the sign-in flow." UserInfo={NSLocalizedDescription=The user canceled the sign-in flow.}
这真的很令人沮丧,并且支持我的整个团队,因为我们无法让 auth 工作,所以有人知道如何解决这个问题吗?
请注意,我使用的是 iOS9。我不确定这是否与此有关。
运行 与 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])
}
我遇到了同样的问题。我同时使用 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]];
}
}
这个解决方案对我有用。
对于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: [:])
}
}
我试图让用户按照 FirebaseUI 教程使用 Google 帐户登录。当我进入显示的浏览器 vc 时,我只是被带到 Google 主页并且从未登录过。唯一的选择是单击完成 returns 错误 Error Domain=com.google.GIDSignIn Code=-5 "The user canceled the sign-in flow." UserInfo={NSLocalizedDescription=The user canceled the sign-in flow.}
这真的很令人沮丧,并且支持我的整个团队,因为我们无法让 auth 工作,所以有人知道如何解决这个问题吗?
请注意,我使用的是 iOS9。我不确定这是否与此有关。
运行 与 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])
}
我遇到了同样的问题。我同时使用 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]];
}
}
这个解决方案对我有用。
对于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: [:])
}
}