我正在为我的iOS应用程序使用Firebase身份验证服务 . 我想通过电子邮件或Google登录提供商登录应用 . 我申请了firebase instractions .

我可以用电子邮件和密码登录 . 然后我可以使用Firebase注销方法注销:

Auth.auth().signOut()

之后,我可以成功签署并注销谷歌 . 当我使用电子邮件和密码重新认证时,会返回此消息:

密码无效或用户没有密码 .

我无法使用电子邮件登录 .

在Firebase控制台上,用户帐户符号从邮件
mail
更改为Google
Google
. 所以,我只能与Google登录提供商签约,而不是电子邮件 .

我无法解决这个问题 . 我错了什么?下面是我的代码部分 .

另外,当我在firebase控制台上重置密码时,我可以用其中两个登录 . 并且两个图像一起出现在控制台上:
image
如何解决这个问题?

谢谢!

在AppDelegate.swift中:

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {

    if let error = error {
        log.debug("Error Google Sign-in: \(error)")
        return
    }

    guard let authentication = user.authentication else { return }
    let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken,
                                                   accessToken: authentication.accessToken)

    Auth.auth().signInAndRetrieveData(with: credential) { (authResult, error) in

        if let error = error {
            log.error(error)
            return
        }
        // User is signed in
    }
}

这是注销按钮操作:

@IBAction func logout_TouchUpInside(_ sender: Any) {

    do {
        try Auth.auth().signOut()
        GIDSignIn.sharedInstance().signOut()

    } catch let error {
        log.error(error.localizedDescription)

    }
    log.info("After  logout current user: \(String(describing: Auth.auth().currentUser))")
}