Catch up on everthing we announced at this year's Firebase Summit. Learn more

Обработка ошибок аутентификации платформ Apple Firebase

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

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

За исключением случая FIRAuthErrorCodeNetworkError или FIRAuthErrorCodeTooManyRequests , повторное подключение неудовлетворительную работу с теми же аргументами никогда не увенчались успехом. Не делайте предположений о том, вступила ли операция в силу на стороне сервера.

При исследовании или регистрации ошибок, просмотрите userInfo словарь. FIRAuthErrorNameKey содержит имя ошибки строки кросс-платформенный , которая может быть использована для идентификации ошибки. NSLocalizedDescriptionKey содержит описание ошибки. Это описание предназначено для разработчика, а не для пользователя. NSUnderlyingErrorKey содержит основную ошибку , которая вызвала ошибку в вопросе, если основная ошибка присутствует.

В дополнение к основным направлениям , перечисленным выше, могут быть и другие поля в userInfo словаре , которые могут оказаться полезными при диагностике ошибок.

Коды ошибок, общие для всех методов API

Код Имея в виду
FIRAuthErrorCodeNetworkError Указывает, что во время операции произошла сетевая ошибка.
FIRAuthErrorCodeUserNotFound Указывает, что учетная запись пользователя не найдена. Это могло произойти, если учетная запись пользователя была удалена.
FIRAuthErrorCodeUserTokenExpired Указывает, что токен текущего пользователя истек, например, пользователь мог изменить пароль учетной записи на другом устройстве. Вы должны предложить пользователю снова войти в систему на этом устройстве.
FIRAuthErrorCodeTooManyRequests Указывает, что запрос был заблокирован после того, как от вызывающего устройства было отправлено ненормальное количество запросов на серверы аутентификации Firebase. Повторите попытку через некоторое время.
FIRAuthErrorCodeInvalidAPIKey Указывает, что приложение было настроено с недопустимым ключом API.
FIRAuthErrorCodeAppNotAuthorized Указывает, что приложение не авторизовано для использования аутентификации Firebase с предоставленным ключом API. перейдите в консоль API Google и на вкладке учетных данных убедитесь, что ключ 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 консоли , в настройках аутентификации.
FIRAuthErrorCodeUserDisabled Указывает, что учетная запись пользователя отключена.
FIRAuthErrorCodeWrongPassword Указует попытку пользователя войти с неправильным паролем, если учетные данные типа EmailPasswordAuthCredential .

signInAnonymouslyWithCompletion:

Код Имея в виду
FIRAuthErrorCodeOperationNotAllowed Указывает, что анонимные учетные записи не включены. Включить их в разделе Auth в консоли Firebase .

signInWithCustomToken: завершение:

Код Имея в виду
FIRAuthErrorCodeInvalidCustomToken Указывает на ошибку проверки с настраиваемым токеном.
FIRAuthErrorCodeCustomTokenMismatch Указывает, что учетная запись службы и ключ API принадлежат разным проектам.

createUserWithEmail: пароль: завершение:

Код Имея в виду
FIRAuthErrorCodeInvalidEmail Указывает на неправильный формат адреса электронной почты.
FIRAuthErrorCodeEmailAlreadyInUse Указывает, что адрес электронной почты, использованный для попытки регистрации, уже существует. Вызов fetchProvidersForEmail проверить , какой знак-в механизмах такого пользователя используется, и предложит пользователю войти в один из них.
FIRAuthErrorCodeOperationNotAllowed Указывает, что учетные записи электронной почты и пароля не включены. Включить их в разделе Проверка подлинности консоли Firebase .
FIRAuthErrorCodeWeakPassword Указывает на попытку установить слишком слабый пароль. NSLocalizedFailureReasonErrorKey поле в NSError.userInfo объект словаря содержит более подробное объяснение , которое можно показать пользователю.

выход:

Код Имея в виду
FIRAuthErrorCodeKeychainError Указана ошибка при доступе к связке ключей. В NSLocalizedFailureReasonErrorKey и NSUnderlyingErrorKey поля в NSError.userInfo словаре будет содержать больше информации о встретившейся ошибке.

FIRUser

Распространенные ошибки для операций FIRUser

Код Имея в виду
FIRAuthErrorCodeInvalidUserToken Указывает, что маркер обновления вошедшего в систему пользователя, содержащий информацию о сеансе, недействителен. Вы должны предложить пользователю снова войти в систему на этом устройстве.
FIRAuthErrorCodeUserDisabled Указывает, что учетная запись пользователя отключена и больше не может использоваться, пока не будет снова включена на панели «Пользователи» в консоли Firebase.

reauthenticateWithCredential: завершение:

Код Имея в виду
FIRAuthErrorCodeInvalidCredential Указывает, что предоставленные учетные данные недействительны. Это могло произойти, если срок его действия истек или он поврежден.
FIRAuthErrorCodeInvalidEmail Указывает адрес электронной почты имеет неверный формат, если удостоверение имеет тип EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword Указывает на попытку пользователя повторной аутентификации с неверным паролем, если удостоверение имеет тип EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch Указывает, что была сделана попытка повторной аутентификации с пользователем, который не является текущим пользователем.
FIRAuthErrorCodeOperationNotAllowed Указывает, что учетные записи с поставщиком удостоверений, представленным учетными данными, не включены. Включить их в разделе Auth в консоли Firebase .
FIRAuthErrorCodeEmailAlreadyInUse Указывает, что электронная почта, подтвержденная учетными данными (например, электронная почта в токене доступа Facebook), уже используется существующей учетной записью, которая не может быть повторно аутентифицирована с помощью этого метода входа. Вызов fetchProvidersForEmail для электронной почты этого пользователя, а затем побудит их войти в любой из входа в поставщиков возвращены. Эта ошибка будет сгенерирована только если «Один счета на адрес электронной почты» настройка включена в Firebase консоли , в настройках аутентификации.
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 Указывает, что учетная запись пользователя не найдена.

deleteWithCompletion:

Код Имея в виду
FIRAuthErrorCodeRequiresRecentLogin Удаление учетной записи пользователя - это чувствительная к безопасности операция, требующая недавнего входа в систему от пользователя. Эта ошибка указывает на то, что пользователь не вошел в систему достаточно давно. Чтобы решить, повторную аутентификацию пользователя при помощи команды меню reauthenticateWithCredential:completion: на FIRUser .