Jeśli wywołanie zwrotne zakończenia metod uwierzytelniania otrzyma argument NSError
różny od zera, wystąpił błąd. Aby przejść do odpowiedniej logiki obsługi błędów w kodzie produkcyjnym, sprawdź kod błędu pod kątem typowych błędów i błędów specyficznych dla metody wymienionych poniżej.
Niektóre błędy można rozwiązać, wykonując określone działania użytkownika, na przykład FIRAuthErrorCodeUserTokenExpired
można rozwiązać, logując użytkownika ponownie, a FIRAuthErrorCodeWrongPassword
, prosząc użytkownika o podanie prawidłowego hasła.
Z wyjątkiem przypadku FIRAuthErrorCodeNetworkError
lub FIRAuthErrorCodeTooManyRequests
, ponowna próba wykonania zakończonej niepowodzeniem operacji z tymi samymi argumentami nigdy się nie powiedzie. Nie należy zakładać, czy operacja odniosła skutek po stronie serwera.
Badając lub rejestrując błędy, przejrzyj słownik userInfo
. FIRAuthErrorNameKey
zawiera wieloplatformowy ciąg znaków z nazwą błędu, którego można użyć do zidentyfikowania błędu. NSLocalizedDescriptionKey
zawiera opis błędu. Ten opis jest przeznaczony dla programisty, a nie użytkownika. NSUnderlyingErrorKey
zawiera błąd podstawowy, który spowodował dany błąd, jeśli występuje błąd podstawowy.
Oprócz głównych pól wymienionych powyżej, w słowniku userInfo
mogą znajdować się inne pola, które mogą okazać się przydatne podczas diagnozowania błędów.
Kody błędów wspólne dla wszystkich metod API
Kod | Oznaczający |
---|
FIRAuthErrorCodeNetworkError | Wskazuje, że podczas operacji wystąpił błąd sieciowy. |
FIRAuthErrorCodeUserNotFound | Wskazuje, że nie znaleziono konta użytkownika. Może się to zdarzyć, jeśli konto użytkownika zostanie usunięte. |
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 uwierzytelniania Firebase. Spróbuj ponownie po pewnym czasie. |
FIRAuthErrorCodeInvalidAPIKey | Wskazuje, że aplikacja została skonfigurowana przy użyciu nieprawidłowego klucza API. |
FIRAuthErrorCodeAppNotAuthorized | Wskazuje, że aplikacja nie jest autoryzowana do korzystania z uwierzytelniania Firebase przy użyciu dostarczonego klucza API. przejdź do konsoli Google API i sprawdź na karcie poświadczeń, czy używany klucz API ma identyfikator pakietu Twojej aplikacji 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 napotkanym błędzie. |
FIRAuthErrorCodeInternalError | Wskazuje, że wystąpił błąd wewnętrzny. Proszę zgłosić błąd dotyczący całego obiektu NSError . |
Kody błędów specyficzne dla metody
FIRAuth
fetchProvidersForEmail:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidEmail | Wskazuje, że adres e-mail jest zniekształcony. |
zaloguj sięWithEmail:hasło:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że konta e-mail i hasła nie są włączone. Włącz je w sekcji Auth konsoli Firebase . |
FIRAuthErrorCodeInvalidEmail | Wskazuje, że adres e-mail jest zniekształcony. |
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. |
znakInWithCredential:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidCredential | Wskazuje, że podane dane uwierzytelniające są nieprawidłowe. Może się to zdarzyć, jeśli wygasł lub jest zniekształcony. |
FIRAuthErrorCodeInvalidEmail | Wskazuje, że adres e-mail jest zniekształcony, jeśli poświadczenie jest typu EmailPasswordAuthCredential . |
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że konta u dostawcy tożsamości reprezentowanego przez poświadczenie nie są włączone. Włącz je w sekcji Auth konsoli Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Wskazuje, że adres e-mail potwierdzony przez dane uwierzytelniające (np. adres e-mail w tokenie dostępu do Facebooka) jest już używany przez istniejące konto, którego nie można uwierzytelnić za pomocą tej metody logowania. Wywołaj fetchProvidersForEmail aby uzyskać adres e-mail tego użytkownika, a następnie poproś go o zalogowanie się przy użyciu któregokolwiek ze zwróconych dostawców logowania. Ten błąd zostanie zgłoszony tylko wtedy, gdy w konsoli Firebase w obszarze Ustawienia uwierzytelniania włączono ustawienie „Jedno konto na adres e-mail”. |
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 poświadczenie jest typu EmailPasswordAuthCredential . |
zaloguj się anonimowo z ukończeniem:
Kod | Oznaczający |
---|
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że konta anonimowe nie są włączone. Włącz je w sekcji Auth konsoli Firebase . |
SignInWithCustomToken:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidCustomToken | Wskazuje błąd sprawdzania poprawności tokenu niestandardowego. |
FIRAuthErrorCodeCustomTokenMismatch | Wskazuje, że konto usługi i klucz API należą do różnych projektów. |
utwórzUserWithEmail:hasło:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidEmail | Wskazuje, że adres e-mail jest zniekształcony. |
FIRAuthErrorCodeEmailAlreadyInUse | Wskazuje, że adres e-mail użyty do próby rejestracji już istnieje. Wywołaj fetchProvidersForEmail , aby sprawdzić, z jakich mechanizmów logowania korzystał taki użytkownik, i poproś go o zalogowanie się przy użyciu jednego z nich. |
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że konta e-mail i hasła nie są włączone. Włącz je w sekcji Uwierzytelnianie konsoli Firebase . |
FIRAuthErrorCodeWeakPassword | Wskazuje próbę ustawienia hasła, które jest uważane za zbyt słabe. Pole NSLocalizedFailureReasonErrorKey w obiekcie słownika NSError.userInfo będzie zawierać bardziej szczegółowe wyjaśnienie, które będzie można pokazać użytkownikowi. |
Wyloguj się:
Kod | Oznaczający |
---|
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 napotkanym błędzie. |
FIRUser
Typowe błędy w operacjach FIRUser
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidUserToken | Wskazuje, że token odświeżania zalogowanego użytkownika, który przechowuje 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 już używać, dopóki nie zostanie ponownie włączone w panelu Użytkownicy w konsoli Firebase. |
ponownie uwierzytelnij za pomocą poświadczenia:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidCredential | Wskazuje, że podane dane uwierzytelniające są nieprawidłowe. Może się to zdarzyć, jeśli wygasł lub jest zniekształcony. |
FIRAuthErrorCodeInvalidEmail | Wskazuje, że adres e-mail jest zniekształcony, jeśli poświadczenie jest typu EmailPasswordAuthCredential . |
FIRAuthErrorCodeWrongPassword | Wskazuje, że użytkownik podjął próbę ponownego uwierzytelnienia przy użyciu nieprawidłowego hasła, jeśli poświadczenie jest typu EmailPasswordAuthCredential . |
FIRAuthErrorCodeUserMismatch | Wskazuje, że podjęto próbę ponownego uwierzytelnienia przy użyciu użytkownika, który nie jest bieżącym użytkownikiem. |
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że konta u dostawcy tożsamości reprezentowanego przez poświadczenie nie są włączone. Włącz je w sekcji Auth konsoli Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Wskazuje, że adres e-mail potwierdzony przez dane uwierzytelniające (np. adres e-mail w tokenie dostępu do Facebooka) jest już używany przez istniejące konto, którego nie można ponownie uwierzytelnić za pomocą tej metody logowania. Wywołaj fetchProvidersForEmail aby uzyskać adres e-mail tego użytkownika, a następnie poproś go o zalogowanie się przy użyciu któregokolwiek ze zwróconych dostawców logowania. Ten błąd zostanie zgłoszony tylko wtedy, gdy w konsoli Firebase w obszarze Ustawienia uwierzytelniania włączono ustawienie „Jedno konto na adres e-mail”. |
FIRAuthErrorCodeUserDisabled | Wskazuje, że konto użytkownika jest wyłączone. |
aktualizacjaE-mail:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeEmailAlreadyInUse | Wskazuje, że adres e-mail jest już używany przez inne konto. |
FIRAuthErrorCodeInvalidEmail | Wskazuje, że adres e-mail jest zniekształcony. |
FIRAuthErrorCodeRequiresRecentLogin | Aktualizowanie adresu e-mail użytkownika jest operacją mającą istotne znaczenie dla bezpieczeństwa i wymaga niedawnego zalogowania się użytkownika. Ten błąd oznacza, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując polecenie reauthenticateWithCredential:completion: na FIRUser . |
aktualizacjaHasło:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że administrator wyłączył logowanie przy użyciu określonego dostawcy tożsamości. |
FIRAuthErrorCodeRequiresRecentLogin | Aktualizacja hasła użytkownika jest operacją wymagającą niedawnego zalogowania się użytkownika. Ten błąd oznacza, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując polecenie reauthenticateWithCredential:completion: na FIRUser . |
FIRAuthErrorCodeWeakPassword | Wskazuje próbę ustawienia hasła, które jest uważane za zbyt słabe. Pole NSLocalizedFailureReasonErrorKey w obiekcie słownika NSError.userInfo będzie zawierać bardziej szczegółowe wyjaśnienie, które będzie można pokazać użytkownikowi. |
linkWithCredential:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeProviderAlreadyLinked | Wskazuje próbę połączenia dostawcy typu już połączonego z tym kontem. |
FIRAuthErrorCodeCredentialAlreadyInUse | Wskazuje próbę połączenia z danymi uwierzytelniającymi, które zostały już połączone z innym kontem Firebase. |
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że konta u dostawcy tożsamości reprezentowanego przez poświadczenie nie są włączone. Włącz je w sekcji Auth konsoli Firebase . |
Ta metoda może również zwracać kody błędów powiązane z updateEmail:completion:
i updatePassword:completion:
na FIRUser
.
unlinkFrovider:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeNoSuchProvider | Wskazuje próbę odłączenia dostawcy, który nie jest powiązany z kontem. |
FIRAuthErrorCodeRequiresRecentLogin | Aktualizowanie poczty e-mail to operacja wymagająca bezpieczeństwa, która wymaga niedawnego zalogowania się użytkownika. Ten błąd oznacza, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując polecenie reauthenticateWithCredential:completion: na FIRUser . |
wyślijE-mailWeryfikacjaWithCompletion:
Kod | Oznaczający |
---|
FIRAuthErrorCodeUserNotFound | Wskazuje, że nie znaleziono konta użytkownika. |
usuńWithCompletion:
Kod | Oznaczający |
---|
FIRAuthErrorCodeRequiresRecentLogin | Usunięcie konta użytkownika jest operacją mającą istotne znaczenie dla bezpieczeństwa i wymaga niedawnego zalogowania się użytkownika. Ten błąd oznacza, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując polecenie reauthenticateWithCredential:completion: na FIRUser . |