Как извлечь код ошибки из Firebase? - PullRequest
0 голосов
/ 07 июня 2018
        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)
        }
    }

Всякий раз, когда я вхожу в систему или регистрирую пользователя, я просто печатаю общую предупреждающую этикетку вместо фактической проблемы.Я печатаю полученную ошибку, и она слишком многословна, чтобы показать ее пользователю.

Error Domain = FIRAuthErrorDomain Code = 17009 «Пароль недействителен или у пользователя нет пароля».UserInfo = {NSLocalizedDescription = Пароль недействителен или у пользователя нет пароля., Error_name = ERROR_WRONG_PASSWORD}

Ошибка домена = FIRAuthErrorDomain Код = 17008 «Адрес электронной почты неверно отформатирован».UserInfo = {NSLocalizedDescription = Адрес электронной почты неверно отформатирован., Error_name = ERROR_INVALID_EMAIL}

Есть ли способ получить код ошибки, чтобы я мог быть более конкретным с моими сообщениями об ошибках?Я просмотрел документацию, но ничего не смог придумать.

1 Ответ

0 голосов
/ 07 июня 2018

Я бы порекомендовал создать объект 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 несколько отстает, когда происходят изменения.

...