Firebase iOS GoogleSignIn转换,无需单击默认登录按钮

时间:2017-01-16 18:12:17

标签: ios swift firebase firebase-authentication google-signin

我正在使用以下教程实施Firebase iOS Swift登录: https://firebase.google.com/docs/auth/ios/google-signin

我选择了使用Google自定义按钮的选项:添加视图并将其自定义类设置为GIDSignInButton。 当我建立&运行,我的登录视图控制器显示渲染的谷歌默认按钮,但它立即转换到模拟器中的谷歌网络登录,它不会等待用户点击。

Google视图"互动"属性设置为默认"用户交互已启用。"我也尝试过清理项目,重新启动Xcode,从模拟器中删除应用程序以及“重置内容和重置”。设置..."在模拟器中。 我也进入了模拟器"设置"为" Safari做了一个"清除历史和网站数据"。如果我错过了一些明显的东西,请道歉。 Hadn没有注意到之前的SO帖子。 谢谢!

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,而是重定向到Google登录页面我收到了空白屏幕:enter image description here

步骤7中的教程存在缺陷,建议(可选)登录viewDidLoad方法:enter image description here

只需评论或删除行: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)
}