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