我正在使用以下教程实施Firebase iOS Swift登录: https://firebase.google.com/docs/auth/ios/google-signin
我选择了使用Google自定义按钮的选项:添加视图并将其自定义类设置为GIDSignInButton。 当我建立&运行,我的登录视图控制器显示渲染的谷歌默认按钮,但它立即转换到模拟器中的谷歌网络登录,它不会等待用户点击。
Google视图"互动"属性设置为默认"用户交互已启用。"我也尝试过清理项目,重新启动Xcode,从模拟器中删除应用程序以及“重置内容和重置”。设置..."在模拟器中。 我也进入了模拟器"设置"为" Safari做了一个"清除历史和网站数据"。如果我错过了一些明显的东西,请道歉。 Hadn没有注意到之前的SO帖子。 谢谢!
答案 0 :(得分:3)
我遇到了同样的问题,而是重定向到Google登录页面我收到了空白屏幕:
步骤7中的教程存在缺陷,建议(可选)登录viewDidLoad方法:
只需评论或删除行:GIDSignIn.sharedInstance().signIn()
,您就可以点击重定向。
答案 1 :(得分:0)
没有代码样本很难说出错了。我最近自己实施了Google登录。但我使用自己的自定义按钮。这是我的代码:
class SignInVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance().clientID = FIRApp.defaultApp()?.options.clientID
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().delegate = self
}
@IBAction func googleSignInButton(_ sender: UIButton) {
GIDSignIn.sharedInstance().signIn()
}
extension SignInVC: GIDSignInDelegate, GIDSignInUIDelegate {
// [START headless_google_auth]
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) {
if let error = error {
print("README: Error when sign in with Google")
return
}
let authentication = user.authentication
let credential = FIRGoogleAuthProvider.credential(withIDToken: (authentication?.idToken)!, accessToken: (authentication?.accessToken)!)
//this method will finish login to Firebase
FirebaseLogin.sharedInstance.firebaseAuthentication(credential)
}