首页 > 解决方案 > google登录后使用电子邮件登录Firebase出现错误:密码无效或用户没有密码

问题描述

我正在为我的 iOS 应用程序使用 Firebase 身份验证服务。我想通过电子邮件或谷歌登录提供商登录应用程序。我应用了 firebase 指令

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

Auth.auth().signOut()

后来,我可以成功地用谷歌签名和注销。当我使用电子邮件和密码重新验证时,返回此消息:

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

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

在 Firebase 控制台上,用户帐户符号从 mail 更改邮件为 Google 谷歌。因此,我只能使用 Google 登录提供商进行签名,而不是电子邮件。

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

此外,当我在 firebase 控制台上重置密码时,我可以使用其中两个登录。两个图像一起出现在控制台上:图片 我该如何解决这个问题?

谢谢!

在 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))")
}

标签: iosswiftfirebasefirebase-authenticationgoogle-signin

解决方案


推荐阅读