如何从Firebase获取错误代码?

时间:2018-06-07 03:28:50

标签: swift firebase firebase-authentication

        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}

有没有办法获取错误代码,所以我可以更具体的错误消息?我查看了文档,但未能提出任何建议。

1 个答案:

答案 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文档在发生变化时相当滞后。