Auth.auth().signIn(withEmail: emailTextField.text!, password: passwordTextField.text!)
{ (user, error) in
if error != nil {
print(error!)
self.warningLabel.isHidden = false;
self.passwordTextField.text = "";
} else {
print("Log in succesful")
self.performSegue(withIdentifier: "welcomeSeg", sender: self)
}
}
每当我登录或注册用户时,我只会打印一般警告标签而不是实际问题。我打印出收到的错误,并且过于冗长,无法向用户显示。
错误域= FIRAuthErrorDomain代码= 17009"密码无效或用户没有密码。" UserInfo = {NSLocalizedDescription =密码无效或用户没有密码。,error_name = ERROR_WRONG_PASSWORD}
错误域= FIRAuthErrorDomain代码= 17008"电子邮件地址格式错误。" UserInfo = {NSLocalizedDescription =电子邮件地址格式错误。,error_name = ERROR_INVALID_EMAIL}
有没有办法获取错误代码,所以我可以更具体的错误消息?我查看了文档,但未能提出任何建议。
答案 0 :(得分:1)
我建议您根据收到的错误创建一个AuthErrorCode
对象(由Firebase SDK提供),并根据需要使用该对象。如果我没记错的话,AuthErrorCode
是包含.wrongPassword
,.invalidEmail
等案例的枚举。
一个简单的伪代码示例:
if error != nil {
if let error = AuthErrorCode(rawValue: error?.code) {
switch error {
case .wrongPassword:
// do some stuff with the error code
}
}
另外,我感觉到你的痛苦。我发现Swift SDK文档在发生变化时相当滞后。