我们是一个使用Firebase创建和登录用户的应用。以前登录可以正常工作,但是最近,当我们尝试使用电子邮件和密码登录时,它开始发出“内部错误”(如下图所示)
我检查以确保在Firebase上启用了登录方法(电子邮件和密码)
FIRAuth.auth()?.signIn(withEmail: signInEmail.text!, password: signInPassword.text!, completion: { (user, error) in
if(error == nil) {
print("SUCCESS: User authenticated with firebase")
if let user = user {
KeychainWrapper.standard.set(user.uid, forKey: KEY_UID)
print("SUCCESS: Data saved to keychain")
}
} else {
print(error?.localizedDescription)
print("Debug Description")
print(error.debugDescription)
}
}
这是出现的调试说明
Optional(Error Domain=FIRAuthErrorDomain Code=17999 "An internal error has occurred, print and inspect the error details for more information." UserInfo={error_name=ERROR_INTERNAL_ERROR, NSLocalizedDescription=An internal error has occurred, print and inspect the error details for more information., NSUnderlyingError=0x2835ccbd0 {Error Domain=FIRAuthInternalErrorDomain Code=4 "(null)" UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey={
displayName = "";
email = "lilhughes12@gmail.com";
expiresIn = 3600;
idToken ="eyJhbGciOiJSUzI1NiIsImtpZCI6IjU0OGYzZjk4N2IxNzMxOWZlZDhjZDc2ODNmNTIyNWEyOTY0YzY5OWQiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vbXJwYXJ0eS05MTNkMiIsImF1ZCI6Im1ycGFydHktOTEzZDIiLCJhdXRoX3RpbWUiOjE1NjA2NDc2MzcsInVzZXJfaWQiOiJ3aDlDQkdCYk1uY2Rvd044aUdXRVN0bXVlMk0yIiwic3ViIjoid2g5Q0JHQmJNbmNkb3dOOGlHV0VTdG11ZTJNMiIsImlhdCI6MTU2MDY0NzYzNywiZXhwIjoxNTYwNjUxMjM3LCJlbWFpbCI6ImxpbGh1Z2hlczEyQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJlbWFpbCI6WyJsaWxodWdoZXMxMkBnbWFpbC5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.i2qRZuZPPnxpKVN-4mWVwG8dZuTMvc10QV3MxzB_La_FBNqpBrErTPjGF9PiUSOtV60YpSFKtLTFdcS5GixvN3DCvVs8OxpGBykPyoS6c4ronm9Q0hU0nK8Mc_8Ahpkq9FZkfTGdTrVyUOM9j3gs8fhFOqa5mw-1u4mNNF_lQitt1xL2FuQeXhFNMYJm14HVxlKQh0Bxb_b7ogdjOzw1BcHsTsz0zLwWx-BTqOc6jyArCSZdTBJ4x-bgSl1m-JxinOUiTMATUdB9hnXRMZEUfd1s6hL6EvpZsT95Yxfgnu8sx1yOTbApRmNYR6TGDZjXDTjpY0mUqP-_YWD7V1yY4g";
kind = "identitytoolkit#SignInWithPasswordResponse";
localId = wh9CBGBbMncdowN8iGWEStmue2M2;
refreshToken = "AEu4IL0vI7r7MpOLHLKNYUP8EH1i85KB8NUUA4PXSkYBa8Gmf7HhW77tqAU1aL3_zlPRdcIqrQR023l-X7mCoZe8MYgabwBXb9q9z23j7UtPAwk4QMNByOg97xqaNLejucqAXEDS2LkrvL1Ql58E1fDme4DdY4767kKj3ITrunym9HlbgVjBY4xJMZZyAS8tCFeMI8DQoEkJaNw5s_Wjs7bAejLfTjxjHw";
registered = 1;
}}}})
答案 0 :(得分:6)
根据您提供的有限代码,您似乎正在使用Firebase版本3.11.0和FirebaseAuth版本3.1.1。从Firebase的最新更新开始,“使用电子邮件登录”功能不再起作用。为了解决此问题,您将必须将Firebase和FirebaseAuth更新到最新版本(分别为6.2.0和6.1.1)。
为了更新您的Pod,请在终端中转到项目文件夹,然后键入pod update
。此过程可能需要几分钟(取决于您的计算机和连接性)。在更新您的Pod之后,请解决所有编译错误,您应该一切就绪!
希望这会有所帮助!
答案 1 :(得分:0)
我能够通过执行以下操作解决问题:
pod 'Firebase/Database' , '~> 5.0'
并运行pod update
。