Jeśli wywołanie zwrotne zakończenia metod uwierzytelniania otrzyma argument NSError
, który nie jest nil, 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ć, 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 operacji zakończonej niepowodzeniem z tymi samymi argumentami nigdy się nie powiedzie. Nie zakładaj, czy operacja odniosła skutek po stronie serwera.
Podczas badania lub rejestrowania błędów przejrzyj słownik userInfo
. FIRAuthErrorNameKey
zawiera międzyplatformowy ciąg nazwy błędu, którego można użyć do identyfikacji 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ą być 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 sieci. |
FIRAuthErrorCodeUserNotFound | Wskazuje, że nie znaleziono konta użytkownika. 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 za jakiś czas. |
FIRAuthErrorCodeInvalidAPIKey | Wskazuje, że aplikacja została skonfigurowana przy użyciu nieprawidłowego klucza API. |
FIRAuthErrorCodeAppNotAuthorized | Wskazuje, że aplikacja nie jest uprawniona do korzystania z uwierzytelniania Firebase za pomocą dostarczonego klucza API. przejdź do Konsoli API Google i sprawdź na karcie poświadczeń, czy klucz API, którego używasz, ma na białej liście identyfikator pakietu Twojej aplikacji. |
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 z całym obiektem NSError . |
Kody błędów specyficzne dla metody
FIRAuth
fetchProvidersForEmail:zakończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidEmail | Wskazuje, że adres e-mail jest zniekształcony. |
zaloguj się przez e-mail: 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ł się zalogować przy użyciu nieprawidłowego hasła. |
zaloguj się za pomocą poświadczeń: ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidCredential | Wskazuje, że podane poświadczenie jest 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 z dostawcą tożsamości reprezentowanym przez poświadczenie nie są włączone. Włącz je w sekcji Auth konsoli Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Wskazuje, że adres e-mail potwierdzony przez poświadczenie (np. adres e-mail w tokenie dostępu do serwisu Facebook) 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 dowolnego zwróconego dostawcy logowania. Ten błąd zostanie zgłoszony tylko wtedy, gdy ustawienie „Jedno konto na adres e-mail” jest włączone w konsoli Firebase w obszarze Ustawienia uwierzytelniania. |
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 Dokoń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 weryfikacji z tokenem niestandardowym. |
FIRAuthErrorCodeCustomTokenMismatch | Wskazuje, że konto usługi i klucz API należą do różnych projektów. |
createUserWithEmail:hasło:zakoń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ę za pomocą 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ło bardziej szczegółowe wyjaśnienie, które można wyświetlić użytkownikowi. |
Wyloguj się:
Kod | Oznaczający |
---|
FIRAuthErrorCodeKeychainError | Wskazał, ż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 dla operacji 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 już z niego korzystać, dopóki nie zostanie ponownie włączone w panelu Użytkownicy w konsoli Firebase. |
ponowne uwierzytelnienie WithCredential: zakończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeInvalidCredential | Wskazuje, że podane poświadczenie jest 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 próbował ponownie uwierzytelnić się z niepoprawnym hasłem, jeśli poświadczenie jest typu EmailPasswordAuthCredential . |
FIRAuthErrorCodeUserMismatch | Wskazuje, że podjęto próbę ponownego uwierzytelnienia użytkownika, który nie jest bieżącym użytkownikiem. |
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że konta z dostawcą tożsamości reprezentowanym przez poświadczenie nie są włączone. Włącz je w sekcji Auth konsoli Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Wskazuje, że adres e-mail potwierdzony przez poświadczenie (np. adres e-mail w tokenie dostępu do serwisu Facebook) 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 dowolnego zwróconego dostawcy logowania. Ten błąd zostanie zgłoszony tylko wtedy, gdy ustawienie „Jedno konto na adres e-mail” jest włączone w konsoli Firebase w obszarze Ustawienia uwierzytelniania. |
FIRAuthErrorCodeUserDisabled | Wskazuje, że konto użytkownika jest wyłączone. |
aktualizacjaE-mail:zakoń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 | Aktualizacja adresu e-mail użytkownika jest operacją wrażliwą pod względem bezpieczeństwa, która wymaga niedawnego zalogowania się przez użytkownika. Ten błąd wskazuje, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując reauthenticateWithCredential:completion: on FIRUser . |
aktualizacjaHasło:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeOperationNotAllowed | Wskazuje, że administrator wyłączył logowanie z określonym dostawcą 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 wskazuje, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując reauthenticateWithCredential:completion: on 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ło bardziej szczegółowe wyjaśnienie, które można wyświetlić użytkownikowi. |
linkWithCredential:ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeProviderAlreadyLinked | Wskazuje na 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 z dostawcą tożsamości reprezentowanym 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 związane z updateEmail:completion:
i updatePassword:completion:
on FIRUser
.
odłączenie od dostawcy: ukończenie:
Kod | Oznaczający |
---|
FIRAuthErrorCodeNoSuchProvider | Wskazuje próbę odłączenia dostawcy, który nie jest połączony z kontem. |
FIRAuthErrorCodeRequiresRecentLogin | Aktualizacja poczty e-mail to operacja wrażliwa pod względem bezpieczeństwa, która wymaga niedawnego zalogowania się przez użytkownika. Ten błąd wskazuje, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując reauthenticateWithCredential:completion: on FIRUser . |
sendEmailVerification WithCompletion:
Kod | Oznaczający |
---|
FIRAuthErrorCodeUserNotFound | Wskazuje, że nie znaleziono konta użytkownika. |
usuń z zakończeniem:
Kod | Oznaczający |
---|
FIRAuthErrorCodeRequiresRecentLogin | Usunięcie konta użytkownika jest operacją wrażliwą na bezpieczeństwo, która wymaga niedawnego zalogowania się przez użytkownika. Ten błąd wskazuje, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać problem, ponownie uwierzytelnij użytkownika, wywołując reauthenticateWithCredential:completion: on FIRUser . |