Gestire gli errori di autenticazione delle piattaforme Firebase Apple
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Se il callback di completamento dei metodi Authentication riceve un argomento NSError che
non è nil, si è verificato un errore. Per inviare alla logica di gestione degli errori appropriata nel codice di produzione, controlla il codice di errore rispetto agli errori comuni e agli errori specifici del metodo elencati di seguito.
Alcuni errori possono essere risolti con azioni specifiche dell'utente, ad esempio FIRAuthErrorCodeUserTokenExpired può essere risolto accedendo di nuovo all'utente e FIRAuthErrorCodeWrongPassword chiedendo all'utente di fornire la password corretta.
Tranne nel caso di FIRAuthErrorCodeNetworkError o FIRAuthErrorCodeTooManyRequests, il tentativo di ripetere un'operazione non riuscita con gli stessi argomenti non andrà mai a buon fine. Non fare ipotesi sul fatto che l'operazione abbia avuto effetto o meno sul lato server.
Quando esamini o registri gli errori, controlla il dizionario userInfo.
FIRAuthErrorNameKey contiene una stringa del nome dell'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 elencati sopra, nel dizionario userInfo possono essere presenti altri campi che potrebbero essere utili per la diagnosi degli errori.
Codici di errore comuni a tutti i metodi API
Codice
Significato
FIRAuthErrorCodeNetworkError
Indica che si è verificato un errore di rete durante l'operazione.
FIRAuthErrorCodeUserNotFound
Indica che l'account utente non è stato trovato. Questo potrebbe accadere se l'account utente è stato eliminato.
FIRAuthErrorCodeUserTokenExpired
Indica che il token dell'utente attuale è scaduto, ad esempio l'utente potrebbe aver modificato la password dell'account su un altro dispositivo. Devi chiedere all'utente di accedere di nuovo su questo dispositivo.
FIRAuthErrorCodeTooManyRequests
Indica che la richiesta è stata bloccata dopo che il dispositivo chiamante ha effettuato un numero anomalo di richieste ai server Firebase Authentication. Riprova più tardi.
FIRAuthErrorCodeInvalidAPIKey
Indica che l'applicazione è stata configurata con una chiave API non valida.
FIRAuthErrorCodeAppNotAuthorized
Indica che l'app non è autorizzata a utilizzare Firebase Authentication con la chiave API fornita. Vai alla console API di Google e controlla nella scheda Credenziali che l'ID pacchetto della tua applicazione sia incluso nella lista consentita della chiave API che stai utilizzando.
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.
Indica che gli account con email e password non sono attivati. Attivali nella console Firebase (vai alla scheda Sicurezza > Autenticazione > Metodo di accesso).
FIRAuthErrorCodeInvalidEmail
Indica che l'indirizzo email non è valido.
FIRAuthErrorCodeUserDisabled
Indica che l'account dell'utente è disattivato.
FIRAuthErrorCodeWrongPassword
Indica che l'utente ha tentato di accedere con una password errata.
signInWithCredential:completion:
Codice
Significato
FIRAuthErrorCodeInvalidCredential
Indica che la credenziale fornita non è valida. Questo potrebbe accadere se è scaduta o non è valida.
FIRAuthErrorCodeInvalidEmail
Indica che l'indirizzo email non è valido, se la credenziale è di tipo EmailPasswordAuthCredential.
FIRAuthErrorCodeOperationNotAllowed
Indica che gli account con il provider di identità rappresentato dalla credenziale non sono attivati. Attivali nella console Firebase (vai alla scheda Sicurezza > Autenticazione > Metodo di accesso).
FIRAuthErrorCodeEmailAlreadyInUse
Indica che l'email dichiarata dalla credenziale (ad es. l'email in un token di accesso di Facebook) è già in uso da un account esistente, che non può essere autenticato con questo metodo di accesso. Chiama fetchProvidersForEmail per l'email di questo utente e poi chiedigli di accedere con uno dei provider di accesso restituiti. Questo errore verrà generato solo se "Un account per indirizzo email" è attivato nella console Firebase (vai alla scheda Sicurezza > Autenticazione > Impostazioni).
FIRAuthErrorCodeUserDisabled
Indica che l'account dell'utente è disattivato.
FIRAuthErrorCodeWrongPassword
Indica che l'utente ha tentato di accedere con una password errata, se la credenziale è di tipo EmailPasswordAuthCredential.
signInAnonymouslyWithCompletion:
Codice
Significato
FIRAuthErrorCodeOperationNotAllowed
Indica che gli account anonimi non sono attivati. Attivali nella console Firebase (vai alla scheda Sicurezza > Autenticazione > Metodo di accesso).
signInWithCustomToken:completion:
Codice
Significato
FIRAuthErrorCodeInvalidCustomToken
Indica un errore di convalida con il token personalizzato.
FIRAuthErrorCodeCustomTokenMismatch
Indica che il service account e la chiave API appartengono a progetti diversi.
createUserWithEmail:password:completion:
Codice
Significato
FIRAuthErrorCodeInvalidEmail
Indica che l'indirizzo email non è valido.
FIRAuthErrorCodeEmailAlreadyInUse
Indica che l'email utilizzata per tentare la registrazione esiste già. Chiama fetchProvidersForEmail per verificare quali meccanismi di accesso ha utilizzato l'utente e chiedigli di accedere con uno di questi.
FIRAuthErrorCodeOperationNotAllowed
Indica che gli account con email e password non sono attivati. Attivali nella console Firebase (vai alla scheda Sicurezza > Autenticazione > Metodo di accesso).
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.
signOut:
Codice
Significato
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.
FIRUser
Errori comuni per le operazioni FIRUser
Codice
Significato
FIRAuthErrorCodeInvalidUserToken
Indica che il token di aggiornamento dell'utente che ha eseguito l'accesso, che contiene le informazioni sulla sessione, non è valido. Devi chiedere all'utente di accedere di nuovo su questo dispositivo.
FIRAuthErrorCodeUserDisabled
Indica che l'account dell'utente è disattivato e non può più essere utilizzato finché non viene riattivato nella console Firebase (vai alla scheda Sicurezza > Autenticazione > Utenti).
reauthenticateWithCredential:completion:
Codice
Significato
FIRAuthErrorCodeInvalidCredential
Indica che la credenziale fornita non è valida. Questo potrebbe accadere se è scaduta o non è valida.
FIRAuthErrorCodeInvalidEmail
Indica che l'indirizzo email non è valido, se la credenziale è di tipo EmailPasswordAuthCredential.
FIRAuthErrorCodeWrongPassword
Indica che l'utente ha tentato di eseguire la riautenticazione con una password errata, se la credenziale è di tipo EmailPasswordAuthCredential.
FIRAuthErrorCodeUserMismatch
Indica che è stato effettuato un tentativo di riautenticazione con un utente diverso da quello attuale.
FIRAuthErrorCodeOperationNotAllowed
Indica che gli account con il provider di identità rappresentato dalla credenziale non sono attivati. Attivali nella console Firebase (vai a Sicurezza > Autenticazione).
FIRAuthErrorCodeEmailAlreadyInUse
Indica che l'email dichiarata dalla credenziale (ad es. l'email in un token di accesso di Facebook) è già in uso da un account esistente, che non può essere riautenticato con questo metodo di accesso. Chiama fetchProvidersForEmail per l'email di questo utente e poi chiedigli di accedere con uno dei provider di accesso restituiti. Questo errore verrà generato solo se "Un account per indirizzo email" è attivato nella console Firebase (vai alla scheda Sicurezza > Autenticazione > Impostazioni).
FIRAuthErrorCodeUserDisabled
Indica che l'account dell'utente è disattivato.
updateEmail:completion:
Codice
Significato
FIRAuthErrorCodeEmailAlreadyInUse
Indica che l'email è già in uso da un altro account.
FIRAuthErrorCodeInvalidEmail
Indica che l'indirizzo email non è valido.
FIRAuthErrorCodeRequiresRecentLogin
L'aggiornamento dell'email 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 eseguito l'accesso di recente. Per risolvere il problema, riautentica l'utente richiamando reauthenticateWithCredential:completion: su FIRUser.
updatePassword:completion:
Codice
Significato
FIRAuthErrorCodeOperationNotAllowed
Indica che l'amministratore ha disattivato 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 eseguito l'accesso di recente. Per risolvere il problema, riautentica l'utente richiamando 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:completion:
Codice
Significato
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 già collegata a un altro account Firebase.
FIRAuthErrorCodeOperationNotAllowed
Indica che gli account con il provider di identità rappresentato dalla credenziale non sono attivati. Attivali nella console Firebase (vai alla scheda Sicurezza > Autenticazione > Metodo di accesso).
Indica un tentativo di scollegare un provider non collegato all'account.
FIRAuthErrorCodeRequiresRecentLogin
L'aggiornamento dell'email è un'operazione sensibile alla sicurezza che richiede un accesso recente da parte dell'utente. Questo errore indica che l'utente non ha eseguito l'accesso di recente. Per risolvere il problema, riautentica l'utente richiamando reauthenticateWithCredential:completion: su FIRUser.
sendEmailVerificationWithCompletion:
Codice
Significato
FIRAuthErrorCodeUserNotFound
Indica che l'account utente non è stato trovato.
deleteWithCompletion:
Codice
Significato
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 eseguito l'accesso di recente. Per risolvere il problema, riautentica l'utente richiamando reauthenticateWithCredential:completion: su FIRUser.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2026-06-28 UTC."],[],[]]