Catch up on everthing we announced at this year's Firebase Summit. Learn more

Obsługa błędów uwierzytelniania platform Apple Firebase

Jeśli zwrotna zakończenie na metodach uwierzytelniania odbiera NSError argument, że nie jest zerowa, 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 mogą być rozwiązane przez poszczególne działania użytkownika, na przykład, FIRAuthErrorCodeUserTokenExpired mogą być rozwiązane poprzez podpisanie użytkownikowi ponownie i FIRAuthErrorCodeWrongPassword prosząc użytkownika o dostarczenie odpowiedniego hasła.

Z wyjątkiem przypadku FIRAuthErrorCodeNetworkError lub FIRAuthErrorCodeTooManyRequests , Ponowna próba operację uszkodzonego z tymi samymi argumentami nigdy nie uda. Nie zakładaj, czy operacja odniosła skutek po stronie serwera.

Badając lub zalogowaniu błędy przeglądu userInfo słownika. FIRAuthErrorNameKey zawiera wieloplatformowe nazwa błędu ciąg znaków, który może być używany do identyfikacji błędu. NSLocalizedDescriptionKey zawiera opis błędu. Ten opis jest przeznaczony dla programisty, a nie użytkownika. NSUnderlyingErrorKey zawiera podstawowy błąd, który powodował błąd w pytaniu, jeśli bazowy błąd występuje.

Oprócz głównych dziedzinach wymienionych powyżej, nie mogą być też inne pola w userInfo słownika, które mogą okazać się przydatne przy diagnozowaniu 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 używany klucz API 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. W NSLocalizedFailureReasonErrorKey i NSUnderlyingErrorKey pola w NSError.userInfo słowniku będzie zawierać więcej informacji na temat napotkanych błędów.
FIRAuthErrorCodeInternalError Wskazuje, że wystąpił błąd wewnętrzny. Proszę zgłosić ten błąd z całą NSError obiektu.

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 na 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łcone, jeśli poświadczenia 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 na 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. Zaproszenie fetchProvidersForEmail na e-mail tego użytkownika, a następnie skłonić ich do logowania się z którymś z logowania dostawców zwrócone. Ten błąd zostanie rzucony tylko wtedy, gdy „jedno konto na adres e-mail” ustawienie jest włączone w konsoli Firebase pod ustawień uwierzytelniania.
FIRAuthErrorCodeUserDisabled Wskazuje, że konto użytkownika jest wyłączone.
FIRAuthErrorCodeWrongPassword Wskazuje użytkownika próbował zalogować się na nieprawidłowe hasło, jeśli poświadczenia 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 na konsoli Firebase .

signInWithCustomToken:zakoń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. Zaproszenie fetchProvidersForEmail aby sprawdzić, która logowania mechanizmy takie użytkownika używany i poprosi użytkownika, aby zalogować się z jednym z nich.
FIRAuthErrorCodeOperationNotAllowed Wskazuje, że konta e-mail i hasła nie są włączone. Włącz je w sekcji Uwierzytelnianie na konsoli Firebase .
FIRAuthErrorCodeWeakPassword Wskazuje próbę ustawienia hasła, które jest uważane za zbyt słabe. NSLocalizedFailureReasonErrorKey pola w NSError.userInfo obiekt Dictionary będzie zawierać bardziej szczegółowe wyjaśnienie, które mogą być pokazywane użytkownikowi.

Wyloguj się:

Kod Oznaczający
FIRAuthErrorCodeKeychainError Wskazał, że wystąpił błąd podczas uzyskiwania dostępu do pęku kluczy. W NSLocalizedFailureReasonErrorKey i NSUnderlyingErrorKey pola w NSError.userInfo słowniku będzie zawierać więcej informacji na temat napotkanych błędów.

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 uwierzytelnienieWithCredential: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łcone, jeśli poświadczenia jest typu EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword Wskazuje na próbę ponownego uwierzytelnienia użytkownika z błędnym hasłem, jeśli poświadczenia 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 na 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. Zaproszenie fetchProvidersForEmail na e-mail tego użytkownika, a następnie skłonić ich do logowania się z którymś z logowania dostawców zwrócone. Ten błąd zostanie rzucony tylko wtedy, gdy „jedno konto na adres e-mail” ustawienie jest włączone w konsoli Firebase pod ustawień 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ć, ponownego uwierzytelnienia użytkownika poprzez wywoływanie reauthenticateWithCredential:completion: na 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ą 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ć, ponownego uwierzytelnienia użytkownika poprzez wywoływanie reauthenticateWithCredential:completion: na FIRUser .
FIRAuthErrorCodeWeakPassword Wskazuje próbę ustawienia hasła, które jest uważane za zbyt słabe. NSLocalizedFailureReasonErrorKey pola w NSError.userInfo obiekt Dictionary będzie zawierać bardziej szczegółowe wyjaśnienie, które mogą być pokazywane 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 z dostawcą tożsamości reprezentowanym przez poświadczenie nie są włączone. Włącz je w sekcji Auth na konsoli Firebase .

Metoda ta może również zwracać kody błędów związanych z updateEmail:completion: a updatePassword:completion: na 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ć, ponownego uwierzytelnienia użytkownika poprzez wywoływanie reauthenticateWithCredential:completion: na 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ą pod względem bezpieczeństwa, która wymaga niedawnego logowania od użytkownika. Ten błąd wskazuje, że użytkownik nie zalogował się wystarczająco niedawno. Aby rozwiązać, ponownego uwierzytelnienia użytkownika poprzez wywoływanie reauthenticateWithCredential:completion: na FIRUser .