У нас есть существующий проект, который недавно был обновлен до Firebase 5, Swift 4, и наша обработка ошибок аутентификации, похоже, не работает.
Я нашел несколько ответов здесь на SO, но они больше не работаютпредставляется применимым:
Обработка ошибок
Коды аутентификации
Предположим, что пользователь входит в систему и вводит действительныйадрес электронной почты и неверный пароль, которые передаются в следующий код для проверки подлинности
Auth.auth().signIn(withEmail: user, password: pw, completion: { (auth, error) in
if error != nil {
let errDesc = error?.localizedDescription
print(errDesc!) //prints 'The password is invalid'
let err = error!
let errCode = AuthErrorCode(rawValue: err._code)
switch errCode {
case .wrongPassword: //Enum case 'wrongPassword' not found in type 'AuthErrorCode?'
print("wrong password")
default:
print("unknown error")
}
} else {
print("succesfully authd")
}
})
. Ранее мы могли использовать FIRAuthErrorCode для сравнения с возможными ошибками, такими как FIRAuthErrorCodeInvalidEmail, FIRAuthErrorCodeWrongPassword и т. д., но код, указанный выше, не будет скомпилирован должным образомк этому ошибка в этой строке
case .wrongPassword: Enum case 'wrongPassword' not found in type 'AuthErrorCode?'
странно, если я использую автозаполнение, набрав
case AuthErrorCode.wr
.wrongPassword, является выбираемой опцией, и при выборе компилятор показывает
Enum case 'wrongPassword' is not a member of type 'AuthErrorCode?'
, хотя это был выбираемый вариант.