Firebase 3.6.0(Auth) - 使用Swift 3.0检测特定错误

Max*_*tge 6 ios firebase swift firebase-authentication swift3

我正在尝试找出如何检测某个错误.假设登录失败,我想检查错误是否说输入的帐户不存在,然后告诉观众.如果可能的话,所有其他错误也是如此.

在Parse中,我会检查error.code是否等于某个数字,不确定它是否与Firebase相同或类似.

Dra*_*ian 8

用这个:-

if let errCode = FIRAuthErrorCode(rawValue: err!._code) {

                switch errCode {
                case .errorCodeInvalidEmail:
                    print("invalid email")
                case .errorCodeEmailAlreadyInUse:
                    print("in use")
                default:
                    print("Other error!")
                }

            }
Run Code Online (Sandbox Code Playgroud)

其中err是来自firebase的错误


Ahm*_*iah 5

这是带有通知的新格式

Auth.auth().createUser(withEmail: email, password: password) { (user: User?, error) in

if error != nil {

    if let errCode = AuthErrorCode(rawValue: error!._code) {

        switch errCode {
        case .invalidEmail:

            print("invalid email")
            // Create an alert message
            let alertMessage = UIAlertController(title: "Invalid Email", message: "Please check the entered email address", preferredStyle: .alert)
            // Attach an action on alert message
            alertMessage.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in
                alertMessage.dismiss(animated: true, completion: nil)
            }))
            // Display the alert message
            self.present(alertMessage, animated: true, completion: nil)

        case .emailAlreadyInUse:

            print("in use")
            // Create an alert message
            let alertMessage = UIAlertController(title: "Existed Email", message: "The email existed in our database, login instead of registering", preferredStyle: .alert)
            // Attach an action on alert message
            alertMessage.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in
                alertMessage.dismiss(animated: true, completion: nil)
            }))
            // Display the alert message
            self.present(alertMessage, animated: true, completion: nil)

            case .weakPassword:

                print("password is weak")
                // Create an alert message
                let alertMessage = UIAlertController(title: "Password is weak", message: "Use upper and lower characters along with numbers", preferredStyle: .alert)
                // Attach an action on alert message
                alertMessage.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in
                    alertMessage.dismiss(animated: true, completion: nil)
                }))
                // Display the alert message
                self.present(alertMessage, animated: true, completion: nil)

        default:
            print("Other error!")
        }

    }
}
Run Code Online (Sandbox Code Playgroud)