Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Obsługa błędów uwierzytelniania w Firebase iOS

Jeśli wywołanie zwrotne uzupełniania metod uwierzytelniania otrzyma argument NSError który nie jest zerowy, wystąpił błąd. Aby wysłać 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ć za pomocą określonych działań użytkownika, na przykład FIRAuthErrorCodeUserTokenExpired można rozwiązać, ponownie logując użytkownika, a FIRAuthErrorCodeWrongPassword , prosząc użytkownika o FIRAuthErrorCodeWrongPassword prawidłowego hasła.

Z wyjątkiem przypadku FIRAuthErrorCodeNetworkError lub FIRAuthErrorCodeTooManyRequests , ponawianie operacji zakończonej niepowodzeniem z tymi samymi argumentami nigdy się nie powiedzie. Nie należy zakładać, czy operacja przyniosła skutek po stronie serwera.

Podczas badania lub rejestrowania błędów userInfo słownik informacji o użytkowniku. FIRAuthErrorNameKey zawiera ciąg znaków nazwy błędu dla wielu platform, 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 podstawowy błąd, 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ą być przydatne podczas diagnozowania błędów.

Kody błędów wspólne dla wszystkich metod API

Kod Znaczenie
FIRAuthErrorCodeNetworkError Wskazuje na błąd sieciowy podczas operacji.
FIRAuthErrorCodeUserNotFound Wskazuje, że konto użytkownika nie zostało znalezione. Może się to zdarzyć, jeśli konto użytkownika zostało 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 ma uprawnień do korzystania z uwierzytelniania Firebase przy użyciu podanego klucza API. przejdź do konsoli Google API i sprawdź na karcie poświadczeń, czy klucz API, którego używasz, 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. Zgłoś błąd z całym obiektem NSError .

Kody błędów specyficzne dla metody

FIRAuth

fetchProvidersForEmail: zakończenie:

Kod Znaczenie
FIRAuthErrorCodeInvalidEmail Wskazuje, że adres e-mail jest nieprawidłowy.

signInWithEmail: hasło: ukończenie:

Kod Znaczenie
FIRAuthErrorCodeOperationNotAllowed Wskazuje, że konta e-mail i hasła nie są włączone. Włącz je w sekcji Uwierzytelnianie konsoli Firebase .
FIRAuthErrorCodeInvalidEmail Wskazuje, że adres e-mail jest nieprawidłowy.
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.

signInWithCredential: complete:

Kod Znaczenie
FIRAuthErrorCodeInvalidCredential Wskazuje, że podane poświadczenie jest nieprawidłowe. Może się to zdarzyć, jeśli wygasła lub jest źle sformułowana.
FIRAuthErrorCodeInvalidEmail Wskazuje, że adres e-mail jest nieprawidłowy, jeśli poświadczenia są typu EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed Wskazuje, że konta u dostawcy tożsamości reprezentowanego przez poświadczenie nie są włączone. Włącz je w sekcji Uwierzytelnianie konsoli Firebase .
FIRAuthErrorCodeEmailAlreadyInUse Wskazuje, że adres e-mail potwierdzony przez poświadczenie (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. Wywołaj fetchProvidersForEmail celu uzyskania wiadomości e-mail tego użytkownika, a następnie fetchProvidersForEmail go o zalogowanie się za pomocą dowolnego zwróconego dostawcy logowania. Ten błąd zostanie zgłoszony tylko wtedy, gdy w konsoli Firebase w sekcji Ustawienia uwierzytelniania jest włączone 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 .

signInAnonymouslyWithCompletion:

Kod Znaczenie
FIRAuthErrorCodeOperationNotAllowed Wskazuje, że konta anonimowe nie są włączone. Włącz je w sekcji Uwierzytelnianie konsoli Firebase .

signInWithCustomToken: Zakończenie:

Kod Znaczenie
FIRAuthErrorCodeInvalidCustomToken Wskazuje błąd walidacji z tokenem niestandardowym.
FIRAuthErrorCodeCustomTokenMismatch Wskazuje, że konto usługi i klucz API należą do różnych projektów.

createUserWithEmail: hasło: ukończenie:

Kod Znaczenie
FIRAuthErrorCodeInvalidEmail Wskazuje, że adres e-mail jest nieprawidłowy.
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ł dany użytkownik, i fetchProvidersForEmail 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 na próbę ustawienia hasła, które jest uważane za zbyt słabe. Pole NSLocalizedFailureReasonErrorKey w NSError.userInfo słownika NSError.userInfo będzie zawierało bardziej szczegółowe wyjaśnienie, które można wyświetlić użytkownikowi.

Wyloguj się:

Kod Znaczenie
FIRAuthErrorCodeKeychainError Wskazano, ż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 Znaczenie
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że być używane, dopóki nie zostanie ponownie włączone w panelu Użytkownicy w konsoli Firebase.

reauthenticateWithCredential: ukończenie:

Kod Znaczenie
FIRAuthErrorCodeInvalidCredential Wskazuje, że podane poświadczenie jest nieprawidłowe. Może się to zdarzyć, jeśli wygasła lub jest źle sformułowana.
FIRAuthErrorCodeInvalidEmail Wskazuje, że adres e-mail jest nieprawidłowy, jeśli poświadczenia są typu EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword Wskazuje, że użytkownik podjął próbę ponownego uwierzytelnienia przy użyciu niepoprawnego hasła, jeśli poświadczenie jest typu EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch Wskazuje, że podjęto próbę ponownego uwierzytelnienia z użytkownikiem, 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 Uwierzytelnianie konsoli Firebase .
FIRAuthErrorCodeEmailAlreadyInUse Wskazuje, że adres e-mail potwierdzony przez poświadczenie (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. Wywołaj fetchProvidersForEmail celu uzyskania wiadomości e-mail tego użytkownika, a następnie fetchProvidersForEmail go o zalogowanie się za pomocą dowolnego zwróconego dostawcy logowania. Ten błąd zostanie zgłoszony tylko wtedy, gdy w konsoli Firebase w sekcji Ustawienia uwierzytelniania jest włączone ustawienie „Jedno konto na adres e-mail”.
FIRAuthErrorCodeUserDisabled Wskazuje, że konto użytkownika jest wyłączone.

updateEmail: zakończenie:

Kod Znaczenie
FIRAuthErrorCodeEmailAlreadyInUse Wskazuje, że wiadomość e-mail jest już używana przez inne konto.
FIRAuthErrorCodeInvalidEmail Wskazuje, że adres e-mail jest nieprawidłowy.
FIRAuthErrorCodeRequiresRecentLogin Aktualizowanie adresu e-mail użytkownika jest operacją wrażliwą na bezpieczeństwo, która wymaga niedawnego logowania użytkownika. Ten błąd oznacza, że ​​użytkownik nie logował się wystarczająco niedawno. Aby rozwiązać, ponownie uwierzytelnij użytkownika, wywołując FIRUser reauthenticateWithCredential:completion: FIRUser reauthenticateWithCredential:completion: on FIRUser .

updatePassword: ukończenie:

Kod Znaczenie
FIRAuthErrorCodeOperationNotAllowed Wskazuje, że administrator wyłączył logowanie przy użyciu określonego dostawcy tożsamości.
FIRAuthErrorCodeRequiresRecentLogin Aktualizacja hasła użytkownika jest operacją wrażliwą na bezpieczeństwo, która wymaga niedawnego zalogowania się przez użytkownika. Ten błąd oznacza, że ​​użytkownik nie logował się wystarczająco niedawno. Aby rozwiązać, ponownie uwierzytelnij użytkownika, wywołując FIRUser reauthenticateWithCredential:completion: FIRUser reauthenticateWithCredential:completion: on FIRUser .
FIRAuthErrorCodeWeakPassword Wskazuje na próbę ustawienia hasła, które jest uważane za zbyt słabe. Pole NSLocalizedFailureReasonErrorKey w NSError.userInfo słownika NSError.userInfo będzie zawierało bardziej szczegółowe wyjaśnienia, które można wyświetlić użytkownikowi.

linkWithCredential: ukończenie:

Kod Znaczenie
FIRAuthErrorCodeProviderAlreadyLinked Wskazuje na próbę połączenia dostawcy typu już połączonego z tym kontem.
FIRAuthErrorCodeCredentialAlreadyInUse Wskazuje na próbę połączenia z danymi logowania, 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 Uwierzytelnianie konsoli Firebase .

Ta metoda może również zwracać kody błędów związane z updateEmail:completion: i updatePassword:completion: FIRUser updatePassword:completion: on FIRUser .

unlinkFromProvider: zakończenie:

Kod Znaczenie
FIRAuthErrorCodeNoSuchProvider Wskazuje na próbę odłączenia dostawcy, który nie jest połączony z kontem.
FIRAuthErrorCodeRequiresRecentLogin Aktualizowanie poczty e-mail to operacja wrażliwa na bezpieczeństwo, która wymaga niedawnego logowania użytkownika. Ten błąd oznacza, że ​​użytkownik nie logował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując FIRUser reauthenticateWithCredential:completion: FIRUser reauthenticateWithCredential:completion: on FIRUser .

sendEmailVerificationWithCompletion:

Kod Znaczenie
FIRAuthErrorCodeUserNotFound Wskazuje, że konto użytkownika nie zostało znalezione.

deleteWithCompletion:

Kod Znaczenie
FIRAuthErrorCodeRequiresRecentLogin Usunięcie konta użytkownika jest operacją wrażliwą na bezpieczeństwo, która wymaga niedawnego logowania od użytkownika. Ten błąd oznacza, że ​​użytkownik nie logował się wystarczająco niedawno. Aby rozwiązać, ponownie uwierzytelnij użytkownika, wywołując FIRUser reauthenticateWithCredential:completion: FIRUser reauthenticateWithCredential:completion: on FIRUser .