Se il callback di completamento sui metodi di autenticazione riceve un argomento NSError
che non è nil, si è verificato un errore. Per inviare alla logica di gestione degli errori appropriata nel codice di produzione, verificare il codice di errore rispetto agli errori comuni e agli errori specifici del metodo elencati di seguito.
Alcuni errori possono essere risolti da particolari azioni dell'utente, ad esempio FIRAuthErrorCodeUserTokenExpired
può essere risolto eseguendo nuovamente l'accesso dell'utente e FIRAuthErrorCodeWrongPassword
chiedendo all'utente di fornire la password corretta.
Tranne nel caso di FIRAuthErrorCodeNetworkError
o FIRAuthErrorCodeTooManyRequests
, ripetere un'operazione non riuscita con gli stessi argomenti non avrà mai esito positivo. Non dare per scontato se l'operazione abbia avuto effetto sul lato server.
Quando si esaminano o si registrano errori, rivedere il dizionario userInfo
. FIRAuthErrorNameKey
contiene una stringa del nome di errore multipiattaforma che può essere utilizzata per identificare l'errore. NSLocalizedDescriptionKey
contiene una descrizione dell'errore. Questa descrizione è destinata allo sviluppatore, non all'utente. NSUnderlyingErrorKey
contiene l'errore sottostante che ha causato l'errore in questione, se è presente un errore sottostante.
Oltre ai campi principali sopra elencati, nel dizionario userInfo
possono essere presenti altri campi utili per la diagnosi degli errori.
Codici di errore comuni a tutti i metodi API
Codice | Senso |
---|
FIRAuthErrorCodeNetworkError | Indica che si è verificato un errore di rete durante l'operazione. |
FIRAuthErrorCodeUserNotFound | Indica che l'account utente non è stato trovato. Ciò potrebbe accadere se l'account utente è stato eliminato. |
FIRAuthErrorCodeUserTokenExpired | Indica che il token dell'utente corrente è scaduto, ad esempio, l'utente potrebbe aver modificato la password dell'account su un altro dispositivo. È necessario richiedere all'utente di accedere nuovamente su questo dispositivo. |
FIRAuthErrorCodeTooManyRequests | Indica che la richiesta è stata bloccata dopo che un numero anomalo di richieste è stato effettuato dal dispositivo chiamante ai server di autenticazione Firebase. Riprova dopo un po' di tempo. |
FIRAuthErrorCodeInvalidAPIKey | Indica che l'applicazione è stata configurata con una chiave API non valida. |
FIRAuthErrorCodeAppNotAuthorized | Indica che l'app non è autorizzata a utilizzare l'autenticazione Firebase con la chiave API fornita. vai alla Console API di Google e controlla nella scheda delle credenziali che la chiave API che stai utilizzando abbia l'ID bundle della tua applicazione nella lista bianca. |
FIRAuthErrorCodeKeychainError | Indica che si è verificato un errore durante l'accesso al portachiavi. I campi NSLocalizedFailureReasonErrorKey e NSUnderlyingErrorKey nel dizionario NSError.userInfo conterranno ulteriori informazioni sull'errore riscontrato. |
FIRAuthErrorCodeInternalError | Indica che si è verificato un errore interno. Segnala l'errore con l'intero oggetto NSError . |
Codici di errore specifici del metodo
FIRAuth
fetchProvidersForEmail:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeInvalidEmail | Indica che l'indirizzo e-mail non è corretto. |
signInWithEmail:password:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeOperationNotAllowed | Indica che gli account e-mail e password non sono abilitati. Abilitali nella sezione Auth della console Firebase . |
FIRAuthErrorCodeInvalidEmail | Indica che l'indirizzo e-mail non è corretto. |
FIRAuthErrorCodeUserDisabled | Indica che l'account dell'utente è disabilitato. |
FIRAuthErrorCodeWrongPassword | Indica che l'utente ha tentato di accedere con una password errata. |
signInWithCredential:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeInvalidCredential | Indica che la credenziale fornita non è valida. Ciò potrebbe accadere se è scaduto o è malformato. |
FIRAuthErrorCodeInvalidEmail | Indica che l'indirizzo e-mail non è corretto, se la credenziale è di tipo EmailPasswordAuthCredential . |
FIRAuthErrorCodeOperationNotAllowed | Indica che gli account con il provider di identità rappresentato dalla credenziale non sono abilitati. Abilitali nella sezione Auth della console Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Indica che l'e-mail dichiarata dalla credenziale (ad es. l'e-mail in un token di accesso di Facebook) è già utilizzata da un account esistente, che non può essere autenticato con questo metodo di accesso. Chiama fetchProvidersForEmail per l'e-mail di questo utente e quindi chiedi loro di accedere con uno dei provider di accesso restituiti. Questo errore verrà generato solo se l'impostazione "Un account per indirizzo e-mail" è abilitata nella console Firebase , in Impostazioni di autenticazione. |
FIRAuthErrorCodeUserDisabled | Indica che l'account dell'utente è disabilitato. |
FIRAuthErrorCodeWrongPassword | Indica che l'utente ha tentato di accedere con una password errata, se la credenziale è di tipo EmailPasswordAuthCredential . |
signInAnonymouslyWithCompletion:
Codice | Senso |
---|
FIRAuthErrorCodeOperationNotAllowed | Indica che gli account anonimi non sono abilitati. Abilitali nella sezione Auth della console Firebase . |
signInWithCustomToken:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeInvalidCustomToken | Indica un errore di convalida con il token personalizzato. |
FIRAuthErrorCodeCustomTokenMismatch | Indica che l'account del servizio e la chiave API appartengono a progetti diversi. |
createUserWithEmail:password:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeInvalidEmail | Indica che l'indirizzo e-mail non è corretto. |
FIRAuthErrorCodeEmailAlreadyInUse | Indica che l'e-mail utilizzata per tentare la registrazione esiste già. Chiama fetchProvidersForEmail per verificare quali meccanismi di accesso sono stati utilizzati da tale utente e chiedi all'utente di accedere con uno di questi. |
FIRAuthErrorCodeOperationNotAllowed | Indica che gli account e-mail e password non sono abilitati. Abilitali nella sezione Autenticazione della console Firebase . |
FIRAuthErrorCodeWeakPassword | Indica un tentativo di impostare una password considerata troppo debole. Il campo NSLocalizedFailureReasonErrorKey nell'oggetto dizionario NSError.userInfo conterrà una spiegazione più dettagliata che può essere mostrata all'utente. |
disconnessione:
Codice | Senso |
---|
FIRAuthErrorCodeKeychainError | Indicato che si è verificato un errore durante l'accesso al portachiavi. I campi NSLocalizedFailureReasonErrorKey e NSUnderlyingErrorKey nel dizionario NSError.userInfo conterranno ulteriori informazioni sull'errore riscontrato. |
FIRUser
Errori comuni per le operazioni FIRUser
Codice | Senso |
---|
FIRAuthErrorCodeInvalidUserToken | Indica che il token di aggiornamento dell'utente connesso, che contiene le informazioni sulla sessione, non è valido. È necessario richiedere all'utente di accedere nuovamente su questo dispositivo. |
FIRAuthErrorCodeUserDisabled | Indica che l'account dell'utente è disabilitato e non può più essere utilizzato finché non viene abilitato nuovamente dal pannello Utenti nella console di Firebase. |
reauthenticateWithCredential:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeInvalidCredential | Indica che la credenziale fornita non è valida. Ciò potrebbe accadere se è scaduto o è malformato. |
FIRAuthErrorCodeInvalidEmail | Indica che l'indirizzo e-mail non è corretto, se la credenziale è di tipo EmailPasswordAuthCredential . |
FIRAuthErrorCodeWrongPassword | Indica che l'utente ha tentato la riautenticazione con una password errata, se la credenziale è di tipo EmailPasswordAuthCredential . |
FIRAuthErrorCodeUserMismatch | Indica che è stato effettuato un tentativo di riautenticazione con un utente che non è l'utente corrente. |
FIRAuthErrorCodeOperationNotAllowed | Indica che gli account con il provider di identità rappresentato dalla credenziale non sono abilitati. Abilitali nella sezione Auth della console Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Indica che l'e-mail dichiarata dalla credenziale (ad es. l'e-mail in un token di accesso di Facebook) è già utilizzata da un account esistente, che non può essere riautenticato con questo metodo di accesso. Chiama fetchProvidersForEmail per l'e-mail di questo utente e quindi chiedi loro di accedere con uno dei provider di accesso restituiti. Questo errore verrà generato solo se l'impostazione "Un account per indirizzo e-mail" è abilitata nella console Firebase , in Impostazioni di autenticazione. |
FIRAuthErrorCodeUserDisabled | Indica che l'account dell'utente è disabilitato. |
aggiornamentoEmail:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeEmailAlreadyInUse | Indica che l'e-mail è già utilizzata da un altro account. |
FIRAuthErrorCodeInvalidEmail | Indica che l'indirizzo e-mail non è corretto. |
FIRAuthErrorCodeRequiresRecentLogin | L'aggiornamento dell'e-mail di un utente è un'operazione sensibile alla sicurezza che richiede un accesso recente da parte dell'utente. Questo errore indica che l'utente non ha effettuato l'accesso abbastanza di recente. Per risolvere, riautenticare l'utente invocando reauthenticateWithCredential:completion: su FIRUser . |
updatePassword:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeOperationNotAllowed | Indica che l'amministratore ha disabilitato l'accesso con il provider di identità specificato. |
FIRAuthErrorCodeRequiresRecentLogin | L'aggiornamento della password di un utente è un'operazione sensibile alla sicurezza che richiede un accesso recente da parte dell'utente. Questo errore indica che l'utente non ha effettuato l'accesso abbastanza di recente. Per risolvere, riautenticare l'utente invocando reauthenticateWithCredential:completion: su FIRUser . |
FIRAuthErrorCodeWeakPassword | Indica un tentativo di impostare una password considerata troppo debole. Il campo NSLocalizedFailureReasonErrorKey nell'oggetto dizionario NSError.userInfo conterrà una spiegazione più dettagliata che può essere mostrata all'utente. |
linkWithCredential:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeProviderAlreadyLinked | Indica un tentativo di collegare un provider di un tipo già collegato a questo account. |
FIRAuthErrorCodeCredentialAlreadyInUse | Indica un tentativo di collegamento con una credenziale che è già stata collegata a un altro account Firebase. |
FIRAuthErrorCodeOperationNotAllowed | Indica che gli account con il provider di identità rappresentato dalla credenziale non sono abilitati. Abilitali nella sezione Auth della console Firebase . |
Questo metodo può anche restituire codici di errore associati a updateEmail:completion:
e updatePassword:completion:
su FIRUser
.
unlinkFromProvider:completamento:
Codice | Senso |
---|
FIRAuthErrorCodeNoSuchProvider | Indica un tentativo di scollegare un provider che non è collegato all'account. |
FIRAuthErrorCodeRequiresRecentLogin | L'aggiornamento della posta elettronica è un'operazione sensibile alla sicurezza che richiede un accesso recente da parte dell'utente. Questo errore indica che l'utente non ha effettuato l'accesso abbastanza di recente. Per risolvere, riautenticare l'utente invocando reauthenticateWithCredential:completion: su FIRUser . |
sendEmailVerificationWithCompletion:
Codice | Senso |
---|
FIRAuthErrorCodeUserNotFound | Indica che l'account utente non è stato trovato. |
elimina con completamento:
Codice | Senso |
---|
FIRAuthErrorCodeRequiresRecentLogin | L'eliminazione di un account utente è un'operazione sensibile alla sicurezza che richiede un accesso recente da parte dell'utente. Questo errore indica che l'utente non ha effettuato l'accesso abbastanza di recente. Per risolvere, riautenticare l'utente invocando reauthenticateWithCredential:completion: su FIRUser . |