Если обратный вызов завершения методов Authentication получает аргумент NSError
, отличный от нуля, произошла ошибка. Чтобы передать соответствующую логику обработки ошибок в рабочем коде, проверьте код ошибки на наличие распространенных ошибок и ошибок, специфичных для метода, перечисленных ниже.
Некоторые ошибки можно устранить с помощью определенных действий пользователя, например, FIRAuthErrorCodeUserTokenExpired
можно устранить путем повторного входа пользователя в систему, а FIRAuthErrorCodeWrongPassword
— путем запроса пользователя ввести правильный пароль.
За исключением случаев FIRAuthErrorCodeNetworkError
или FIRAuthErrorCodeTooManyRequests
, повторная попытка неудачной операции с теми же аргументами никогда не будет успешной. Не делайте предположений о том, вступила ли операция в силу на стороне сервера.
При исследовании или регистрации ошибок просмотрите словарь userInfo
. FIRAuthErrorNameKey
содержит кросс-платформенную строку имени ошибки, которую можно использовать для идентификации ошибки. NSLocalizedDescriptionKey
содержит описание ошибки. Это описание предназначено для разработчика, а не пользователя. NSUnderlyingErrorKey
содержит основную ошибку, вызвавшую рассматриваемую ошибку, если базовая ошибка присутствует.
Помимо основных полей, перечисленных выше, в словаре userInfo
могут быть и другие поля, которые могут оказаться полезными при диагностике ошибок.
Коды ошибок, общие для всех методов API
Код | Значение |
---|
FIRAuthErrorCodeNetworkError | Указывает на сетевую ошибку, произошедшую во время операции. |
FIRAuthErrorCodeUserNotFound | Указывает, что учетная запись пользователя не найдена. Это может произойти, если учетная запись пользователя была удалена. |
FIRAuthErrorCodeUserTokenExpired | Указывает, что срок действия токена текущего пользователя истек. Например, пользователь мог изменить пароль учетной записи на другом устройстве. Вы должны предложить пользователю снова войти в систему на этом устройстве. |
FIRAuthErrorCodeTooManyRequests | Указывает, что запрос был заблокирован после того, как от вызывающего устройства к серверам Firebase Authentication было сделано аномальное количество запросов. Повторите попытку через некоторое время. |
FIRAuthErrorCodeInvalidAPIKey | Указывает, что приложение настроено с недопустимым ключом API. |
FIRAuthErrorCodeAppNotAuthorized | Указывает, что приложению не разрешено использовать аутентификацию Firebase с предоставленным ключом API. перейдите в консоль Google API и на вкладке учетных данных проверьте, что используемый вами ключ API имеет идентификатор пакета вашего приложения в белом списке. |
FIRAuthErrorCodeKeychainError | Указывает на ошибку при доступе к связке ключей. Поля NSLocalizedFailureReasonErrorKey и NSUnderlyingErrorKey в словаре NSError.userInfo будут содержать дополнительную информацию о возникшей ошибке. |
FIRAuthErrorCodeInternalError | Указывает на то, что произошла внутренняя ошибка. Пожалуйста, сообщите об ошибке со всем объектом NSError . |
Коды ошибок, специфичные для метода
FIRAuth
fetchProvidersForEmail:завершение:
Код | Значение |
---|
FIRAuthErrorCodeInvalidEmail | Указывает на то, что адрес электронной почты имеет неправильный формат. |
SignInWithEmail:пароль:завершение:
Код | Значение |
---|
FIRAuthErrorCodeOperationNotAllowed | Указывает, что учетные записи электронной почты и паролей не включены. Включите их в разделе Auth консоли Firebase . |
FIRAuthErrorCodeInvalidEmail | Указывает на то, что адрес электронной почты имеет неправильный формат. |
FIRAuthErrorCodeUserDisabled | Указывает, что учетная запись пользователя отключена. |
FIRAuthErrorCodeWrongPassword | Указывает, что пользователь попытался войти в систему с неправильным паролем. |
SignInWithCredential:завершение:
Код | Значение |
---|
FIRAuthErrorCodeInvalidCredential | Указывает, что предоставленные учетные данные недействительны. Это может произойти, если срок его действия истек или он поврежден. |
FIRAuthErrorCodeInvalidEmail | Указывает, что адрес электронной почты имеет неправильный формат, если учетные данные имеют тип EmailPasswordAuthCredential . |
FIRAuthErrorCodeOperationNotAllowed | Указывает, что учетные записи с поставщиком удостоверений, представленным учетными данными, не включены. Включите их в разделе Auth консоли Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Указывает, что адрес электронной почты, указанный в учетных данных (например, адрес электронной почты в токене доступа Facebook), уже используется существующей учетной записью, подлинность которой не может быть проверена с помощью этого метода входа. Вызовите fetchProvidersForEmail для адреса электронной почты этого пользователя, а затем предложите ему войти в систему с помощью любого из возвращенных поставщиков входа. Эта ошибка будет возникать только в том случае, если в консоли Firebase в разделе «Настройки Authentication включен параметр «Одна учетная запись на адрес электронной почты». |
FIRAuthErrorCodeUserDisabled | Указывает, что учетная запись пользователя отключена. |
FIRAuthErrorCodeWrongPassword | Указывает, что пользователь попытался войти в систему с неправильным паролем, если учетные данные имеют тип EmailPasswordAuthCredential . |
SignInAnonymouslyWithCompletion:
Код | Значение |
---|
FIRAuthErrorCodeOperationNotAllowed | Указывает, что анонимные учетные записи не включены. Включите их в разделе Auth консоли Firebase . |
SignInWithCustomToken:завершение:
Код | Значение |
---|
FIRAuthErrorCodeInvalidCustomToken | Указывает на ошибку проверки пользовательского токена. |
FIRAuthErrorCodeCustomTokenMismatch | Указывает, что учетная запись службы и ключ API принадлежат разным проектам. |
createUserWithEmail:пароль:завершение:
Код | Значение |
---|
FIRAuthErrorCodeInvalidEmail | Указывает на то, что адрес электронной почты имеет неправильный формат. |
FIRAuthErrorCodeEmailAlreadyInUse | Указывает, что адрес электронной почты, использованный для регистрации, уже существует. Вызовите fetchProvidersForEmail чтобы проверить, какие механизмы входа использовал этот пользователь, и предложите пользователю войти в систему с помощью одного из них. |
FIRAuthErrorCodeOperationNotAllowed | Указывает, что учетные записи электронной почты и паролей не включены. Включите их в разделе Authentication консоли Firebase . |
FIRAuthErrorCodeWeakPassword | Указывает на попытку установки пароля, который считается слишком слабым. Поле NSLocalizedFailureReasonErrorKey в объекте словаря NSError.userInfo будет содержать более подробное объяснение, которое может быть показано пользователю. |
выход:
Код | Значение |
---|
FIRAuthErrorCodeKeychainError | Указано, что произошла ошибка при доступе к связке ключей. Поля NSLocalizedFailureReasonErrorKey и NSUnderlyingErrorKey в словаре NSError.userInfo будут содержать дополнительную информацию о возникшей ошибке. |
FIRUser
Распространенные ошибки при операциях FIRUUser
Код | Значение |
---|
FIRAuthErrorCodeInvalidUserToken | Указывает, что токен обновления вошедшего пользователя, содержащий информацию о сеансе, недействителен. Вы должны предложить пользователю снова войти в систему на этом устройстве. |
FIRAuthErrorCodeUserDisabled | Указывает, что учетная запись пользователя отключена и ее больше нельзя использовать, пока она не будет снова включена на панели «Пользователи» в консоли Firebase . |
reauthenticateWithCredential:завершение:
Код | Значение |
---|
FIRAuthErrorCodeInvalidCredential | Указывает, что предоставленные учетные данные недействительны. Это может произойти, если срок его действия истек или он поврежден. |
FIRAuthErrorCodeInvalidEmail | Указывает, что адрес электронной почты имеет неправильный формат, если учетные данные имеют тип EmailPasswordAuthCredential . |
FIRAuthErrorCodeWrongPassword | Указывает, что пользователь предпринял попытку повторной аутентификации с неправильным паролем, если учетные данные имеют тип EmailPasswordAuthCredential . |
FIRAuthErrorCodeUserMismatch | Указывает, что была предпринята попытка повторной аутентификации пользователя, который не является текущим пользователем. |
FIRAuthErrorCodeOperationNotAllowed | Указывает, что учетные записи с поставщиком удостоверений, представленным учетными данными, не включены. Включите их в разделе Auth консоли Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Указывает, что адрес электронной почты, указанный в учетных данных (например, адрес электронной почты в токене доступа Facebook), уже используется существующей учетной записью, которую нельзя повторно аутентифицировать с помощью этого метода входа. Вызовите fetchProvidersForEmail для адреса электронной почты этого пользователя, а затем предложите ему войти в систему с помощью любого из возвращенных поставщиков входа. Эта ошибка будет возникать только в том случае, если в консоли Firebase в разделе «Настройки Authentication включен параметр «Одна учетная запись на адрес электронной почты». |
FIRAuthErrorCodeUserDisabled | Указывает, что учетная запись пользователя отключена. |
updateEmail:завершение:
Код | Значение |
---|
FIRAuthErrorCodeEmailAlreadyInUse | Указывает, что адрес электронной почты уже используется другой учетной записью. |
FIRAuthErrorCodeInvalidEmail | Указывает на то, что адрес электронной почты имеет неправильный формат. |
FIRAuthErrorCodeRequiresRecentLogin | Обновление электронной почты пользователя — это операция, чувствительная к безопасности, требующая от пользователя недавнего входа в систему. Эта ошибка указывает на то, что пользователь не входил в систему достаточно давно. Чтобы решить эту проблему, повторите аутентификацию пользователя, вызвав reauthenticateWithCredential:completion: на FIRUser . |
updatePassword:завершение:
Код | Значение |
---|
FIRAuthErrorCodeOperationNotAllowed | Указывает, что администратор отключил вход в систему с указанным поставщиком удостоверений. |
FIRAuthErrorCodeRequiresRecentLogin | Обновление пароля пользователя — это операция, чувствительная к безопасности, требующая от пользователя недавнего входа в систему. Эта ошибка указывает на то, что пользователь не входил в систему достаточно давно. Чтобы решить эту проблему, повторите аутентификацию пользователя, вызвав reauthenticateWithCredential:completion: на FIRUser . |
FIRAuthErrorCodeWeakPassword | Указывает на попытку установки пароля, который считается слишком слабым. Поле NSLocalizedFailureReasonErrorKey в объекте словаря NSError.userInfo будет содержать более подробное объяснение, которое может быть показано пользователю. |
linkWithCredential:завершение:
Код | Значение |
---|
FIRAuthErrorCodeProviderAlreadyLinked | Указывает на попытку связать провайдера того типа, который уже связан с этой учетной записью. |
FIRAuthErrorCodeCredentialAlreadyInUse | Указывает на попытку установить связь с учетными данными, которые уже были связаны с другой учетной записью Firebase. |
FIRAuthErrorCodeOperationNotAllowed | Указывает, что учетные записи с поставщиком удостоверений, представленным учетными данными, не включены. Включите их в разделе Auth консоли Firebase . |
Этот метод также может возвращать коды ошибок, связанные с updateEmail:completion:
и updatePassword:completion:
на FIRUser
.
unlinkFromProvider:завершение:
Код | Значение |
---|
FIRAuthErrorCodeNoSuchProvider | Обозначает попытку отсоединить провайдера, не привязанного к учетной записи. |
FIRAuthErrorCodeRequiresRecentLogin | Обновление электронной почты — это операция, чувствительная к безопасности, требующая от пользователя недавнего входа в систему. Эта ошибка указывает на то, что пользователь не входил в систему достаточно давно. Чтобы решить эту проблему, повторите аутентификацию пользователя, вызвав reauthenticateWithCredential:completion: на FIRUser . |
sendEmailVerificationWithCompletion:
Код | Значение |
---|
FIRAuthErrorCodeUserNotFound | Указывает, что учетная запись пользователя не найдена. |
удалитьс завершением:
Код | Значение |
---|
FIRAuthErrorCodeRequiresRecentLogin | Удаление учетной записи пользователя — это операция, чувствительная к безопасности, требующая от пользователя недавнего входа в систему. Эта ошибка указывает на то, что пользователь не входил в систему достаточно давно. Чтобы решить эту проблему, повторите аутентификацию пользователя, вызвав reauthenticateWithCredential:completion: на FIRUser . |