Jeśli wywołanie zwrotne polegające na zakończeniu w metodach Authentication otrzymuje argument NSError
, który:
nie ma wartości nil, wystąpił błąd. W celu wysłania zgłoszenia do odpowiedniej obsługi błędów
w kodzie produkcyjnym, sprawdź kod błędu pod kątem typowych błędów i
wymienionych poniżej.
Niektóre błędy można usunąć dzięki konkretnym działaniom użytkownika. Na przykład:
Problem FIRAuthErrorCodeUserTokenExpired
można rozwiązać, logując użytkownika
oraz FIRAuthErrorCodeWrongPassword
, prosząc użytkownika o podanie
poprawne hasło.
Z wyjątkiem sytuacji FIRAuthErrorCodeNetworkError
i
FIRAuthErrorCodeTooManyRequests
, ponawiam nieudaną operację z tą samą wartością
argumentów nigdy nie zadziała. Nie zgaduj, czy operacja
zaszła po stronie serwera.
Podczas badania lub logowania błędów sprawdź słownik userInfo
.
Pole FIRAuthErrorNameKey
zawiera ciąg z nazwą błędu na wielu platformach, do którego
używane do identyfikacji błędu.
NSLocalizedDescriptionKey
zawiera opis błędu. Ten
jest przeznaczona dla dewelopera, a nie użytkownika.
NSUnderlyingErrorKey
zawiera błąd, który spowodował błąd w
czy nie wystąpił błąd.
Oprócz wymienionych powyżej pól głównych dostępne mogą być też inne pola
Słownik userInfo
, który może się przydać podczas diagnozowania błędów.
Kody błędów wspólne dla wszystkich metod interfejsu API
Kod |
Znaczenie |
FIRAuthErrorCodeNetworkError |
Wskazuje, że podczas wykonywania operacji wystąpił błąd sieci. |
FIRAuthErrorCodeUserNotFound |
Wskazuje, że nie znaleziono konta użytkownika. Przyczyną może być usunięcie konta użytkownika. |
FIRAuthErrorCodeUserTokenExpired |
Wskazuje, że token bieżącego użytkownika wygasł – na przykład użytkownik mógł zmienić hasło do konta na innym urządzeniu. Musisz poprosić użytkownika o ponowne zalogowanie się na tym urządzeniu. |
FIRAuthErrorCodeTooManyRequests |
Wskazuje, że żądanie zostało zablokowane po wysłaniu nieprawidłowej liczby żądań z urządzenia wywołującego do serwerów Firebase Authentication. Spróbuj ponownie później. |
FIRAuthErrorCodeInvalidAPIKey |
Wskazuje, że aplikacja została skonfigurowana przy użyciu nieprawidłowego klucza interfejsu API. |
FIRAuthErrorCodeAppNotAuthorized |
Wskazuje, że aplikacja nie ma uprawnień do korzystania z uwierzytelniania Firebase przy użyciu podanego klucza interfejsu API. otwórz konsolę interfejsów API Google i na karcie z danymi logowania sprawdź, czy używany przez Ciebie klucz interfejsu API został umieszczony na białej liście. |
FIRAuthErrorCodeKeychainError |
Wskazuje, że wystąpił błąd podczas uzyskiwania dostępu do pęku kluczy. Pola NSLocalizedFailureReasonErrorKey i NSUnderlyingErrorKey w słowniku NSError.userInfo będą zawierać więcej informacji o tym błędzie. |
FIRAuthErrorCodeInternalError |
Wskazuje, że wystąpił błąd wewnętrzny. Zgłoś błąd, podając cały obiekt NSError . |
Kody błędów dotyczące konkretnych metod
FIRAuth
downloadProvidersForEmail:completion:
Kod |
Znaczenie |
FIRAuthErrorCodeInvalidEmail |
Wskazuje, że adres e-mail jest uszkodzony. |
signInWithEmail:hasło:uzupełnienie:
Kod |
Znaczenie |
FIRAuthErrorCodeOperationNotAllowed |
Wskazuje, że konta z pocztą e-mail i hasłami nie są włączone. Możesz je włączyć w sekcji Uwierzytelnianie w konsoli Firebase. |
FIRAuthErrorCodeInvalidEmail |
Wskazuje, że adres e-mail jest uszkodzony. |
FIRAuthErrorCodeUserDisabled |
Wskazuje, że konto użytkownika jest wyłączone. |
FIRAuthErrorCodeWrongPassword |
Wskazuje, że użytkownik próbował się zalogować za pomocą nieprawidłowego hasła. |
signInWithCredential:completion:
Kod |
Znaczenie |
FIRAuthErrorCodeInvalidCredential |
Wskazuje, że podane dane logowania są nieprawidłowe. Przyczyną może być to, że stracił ważność lub jest uszkodzony. |
FIRAuthErrorCodeInvalidEmail |
Wskazuje, że adres e-mail jest uszkodzony, jeśli dane logowania są typu EmailPasswordAuthCredential . |
FIRAuthErrorCodeOperationNotAllowed |
Wskazuje, że konta z dostawcą tożsamości reprezentowanym przez dane logowania nie są włączone. Możesz je włączyć w sekcji Uwierzytelnianie w konsoli Firebase. |
FIRAuthErrorCodeEmailAlreadyInUse |
Wskazuje, że adres e-mail potwierdzony przez dane logowania (np. adres e-mail w tokenie dostępu Facebooka) jest już używany przez istniejące konto, którego nie można uwierzytelnić za pomocą tej metody logowania. Zadzwoń pod numer fetchProvidersForEmail , aby otrzymać adres e-mail tego użytkownika, i poproś go o zalogowanie się za pomocą dowolnego z pozostałych dostawców logowania. Ten błąd jest zgłaszany tylko wtedy, gdy opcja „Jedno konto na każdy adres e-mail” jest włączone w konsoli Firebase w sekcji ustawień Authentication. |
FIRAuthErrorCodeUserDisabled |
Wskazuje, że konto użytkownika jest wyłączone. |
FIRAuthErrorCodeWrongPassword |
Wskazuje, że użytkownik próbował zalogować się przy użyciu nieprawidłowego hasła, jeśli dane logowania są typu EmailPasswordAuthCredential . |
Zaloguj sięAnonimowoZDokończeniem:
Kod |
Znaczenie |
FIRAuthErrorCodeOperationNotAllowed |
Wskazuje, że konta anonimowe nie są włączone. Możesz je włączyć w sekcji Uwierzytelnianie w konsoli Firebase. |
signInWithCustomToken:complete:
Kod |
Znaczenie |
FIRAuthErrorCodeInvalidCustomToken |
Wskazuje błąd weryfikacji tokena niestandardowego. |
FIRAuthErrorCodeCustomTokenMismatch |
Wskazuje, że konto usługi i klucz interfejsu API należą do różnych projektów. |
createUserWithEmail:password:complete:
Kod |
Znaczenie |
FIRAuthErrorCodeInvalidEmail |
Wskazuje, że adres e-mail jest uszkodzony. |
FIRAuthErrorCodeEmailAlreadyInUse |
Wskazuje, że adres e-mail użyty do próby rejestracji już istnieje. Wywołaj fetchProvidersForEmail , aby sprawdzić, których mechanizmów logowania używał dany użytkownik, i poproś go o zalogowanie się przy użyciu jednego z nich. |
FIRAuthErrorCodeOperationNotAllowed |
Wskazuje, że konta z pocztą e-mail i hasłami nie są włączone. Włącz je w sekcji Authentication w konsoli Firebase. |
FIRAuthErrorCodeWeakPassword |
Wskazuje próbę ustawienia hasła, które jest uznawane za zbyt słabe. Pole NSLocalizedFailureReasonErrorKey w obiekcie słownika NSError.userInfo zawiera bardziej szczegółowe wyjaśnienie, które może zobaczyć użytkownik. |
Wyloguj się:
Kod |
Znaczenie |
FIRAuthErrorCodeKeychainError |
Wskazano błąd podczas uzyskiwania dostępu do pęku kluczy. Pola NSLocalizedFailureReasonErrorKey i NSUnderlyingErrorKey w słowniku NSError.userInfo będą zawierać więcej informacji o tym błędzie. |
FIRUser
Typowe błędy przy operacjach FIRUser
Kod |
Znaczenie |
FIRAuthErrorCodeInvalidUserToken |
Wskazuje, że token odświeżania zalogowanego użytkownika, który zawiera informacje o sesji, jest nieprawidłowy. Musisz poprosić użytkownika o ponowne zalogowanie się na tym urządzeniu. |
FIRAuthErrorCodeUserDisabled |
Wskazuje, że konto użytkownika jest wyłączone i nie można go używać, dopóki nie zostanie ponownie włączony w panelu Użytkownicy w konsoli Firebase. |
reauthenticateWithCredential:completion:
Kod |
Znaczenie |
FIRAuthErrorCodeInvalidCredential |
Wskazuje, że podane dane logowania są nieprawidłowe. Przyczyną może być to, że stracił ważność lub jest uszkodzony. |
FIRAuthErrorCodeInvalidEmail |
Wskazuje, że adres e-mail jest uszkodzony, jeśli dane logowania są typu EmailPasswordAuthCredential . |
FIRAuthErrorCodeWrongPassword |
Wskazuje, że użytkownik próbował ponownie uwierzytelnić się przy użyciu nieprawidłowego hasła, jeśli dane logowania są typu EmailPasswordAuthCredential . |
FIRAuthErrorCodeUserMismatch |
Wskazuje, że podjęto próbę ponownego uwierzytelnienia u użytkownika, który nie jest bieżącym użytkownikiem. |
FIRAuthErrorCodeOperationNotAllowed |
Wskazuje, że konta z dostawcą tożsamości reprezentowanym przez dane logowania nie są włączone. Możesz je włączyć w sekcji Uwierzytelnianie w konsoli Firebase. |
FIRAuthErrorCodeEmailAlreadyInUse |
Wskazuje, że adres e-mail potwierdzony przez dane logowania (np. adres e-mail w tokenie dostępu Facebooka) jest już używany przez istniejące konto, którego nie można ponownie uwierzytelnić za pomocą tej metody logowania. Zadzwoń pod numer fetchProvidersForEmail , aby otrzymać adres e-mail tego użytkownika, i poproś go o zalogowanie się za pomocą dowolnego z pozostałych dostawców logowania. Ten błąd jest zgłaszany tylko wtedy, gdy opcja „Jedno konto na każdy adres e-mail” jest włączone w konsoli Firebase w sekcji ustawień Authentication. |
FIRAuthErrorCodeUserDisabled |
Wskazuje, że konto użytkownika jest wyłączone. |
updateEmail:complete:
Kod |
Znaczenie |
FIRAuthErrorCodeEmailAlreadyInUse |
Wskazuje, że adres e-mail jest już używany przez inne konto. |
FIRAuthErrorCodeInvalidEmail |
Wskazuje, że adres e-mail jest uszkodzony. |
FIRAuthErrorCodeRequiresRecentLogin |
Aktualizowanie adresu e-mail użytkownika jest operacjami związanymi z bezpieczeństwem, które wymaga ostatniego logowania. Ten błąd oznacza, że użytkownik nie zalogował się jeszcze wystarczająco długo. Aby rozwiązać ten problem, ponownie uwierzytelnij użytkownika, wywołując funkcję reauthenticateWithCredential:completion: w systemie FIRUser . |
updatePassword:complete:
Kod |
Znaczenie |
FIRAuthErrorCodeOperationNotAllowed |
Wskazuje, że administrator wyłączył logowanie się przy użyciu określonego dostawcy tożsamości. |
FIRAuthErrorCodeRequiresRecentLogin |
Aktualizowanie hasła użytkownika jest operacjami związanymi z bezpieczeństwem, które wymaga ostatniego logowania. Ten błąd oznacza, że użytkownik nie zalogował się jeszcze wystarczająco długo. Aby rozwiązać ten problem, ponownie uwierzytelnij użytkownika, wywołując funkcję reauthenticateWithCredential:completion: w systemie FIRUser . |
FIRAuthErrorCodeWeakPassword |
Wskazuje próbę ustawienia hasła, które jest uznawane za zbyt słabe. Pole NSLocalizedFailureReasonErrorKey w obiekcie słownika NSError.userInfo zawiera bardziej szczegółowe wyjaśnienie, które może zobaczyć użytkownik. |
linkWithCredential:completion:
Kod |
Znaczenie |
FIRAuthErrorCodeProviderAlreadyLinked |
Wskazuje próbę połączenia dostawcy typu już powiązanego z tym kontem. |
FIRAuthErrorCodeCredentialAlreadyInUse |
Wskazuje próbę połączenia z danymi logowania, które zostały już połączone z innym kontem Firebase. |
FIRAuthErrorCodeOperationNotAllowed |
Wskazuje, że konta z dostawcą tożsamości reprezentowanym przez dane logowania nie są włączone. Możesz je włączyć w sekcji Uwierzytelnianie w konsoli Firebase. |
Ta metoda może też zwrócić kody błędów związane z metodami updateEmail:completion:
oraz
updatePassword:completion:
FIRUser
.
StatementFromProvider:completion:
Kod |
Znaczenie |
FIRAuthErrorCodeNoSuchProvider |
Wskazuje próbę odłączenia dostawcy, który nie jest połączony z kontem. |
FIRAuthErrorCodeRequiresRecentLogin |
Aktualizowanie adresu e-mail to operacja zależna od bezpieczeństwa, która wymaga od użytkownika ostatniego logowania. Ten błąd oznacza, że użytkownik nie zalogował się jeszcze wystarczająco długo. Aby rozwiązać ten problem, ponownie uwierzytelnij użytkownika, wywołując funkcję reauthenticateWithCredential:completion: w systemie FIRUser . |
sendEmailWeryfikacjaWith Prowadzenie:
Kod |
Znaczenie |
FIRAuthErrorCodeUserNotFound |
Wskazuje, że nie znaleziono konta użytkownika. |
deleteWithComplete:
Kod |
Znaczenie |
FIRAuthErrorCodeRequiresRecentLogin |
Usunięcie konta użytkownika jest poważną operacją z punktu widzenia bezpieczeństwa, które wymaga ostatniego zalogowania się użytkownika. Ten błąd oznacza, że użytkownik nie zalogował się jeszcze wystarczająco długo. Aby rozwiązać ten problem, ponownie uwierzytelnij użytkownika, wywołując funkcję reauthenticateWithCredential:completion: w systemie FIRUser . |