我正在为我的iOS应用程序使用Firebase身份验证服务 . 我想通过电子邮件或Google登录提供商登录应用 . 我申请了firebase instractions .
我可以用电子邮件和密码登录 . 然后我可以使用Firebase注销方法注销:
Auth.auth().signOut()
之后,我可以成功签署并注销谷歌 . 当我使用电子邮件和密码重新认证时,会返回此消息:
密码无效或用户没有密码 .
我无法使用电子邮件登录 .
在Firebase控制台上,用户帐户符号从邮件
更改为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))")
}