Questa pagina fornisce assistenza per la risoluzione dei problemi e risposte alle domande frequenti sull'utilizzo di Firebase Authentication. Se non riesci a trovare quello che cerchi o hai bisogno di ulteriore aiuto, contatta l'assistenza Firebase.
Quali regioni sono supportate per l'autenticazione telefonica?
Firebase Authentication supporta la verifica del numero di telefono a livello globale, ma non tutte le reti inviano in modo affidabile i messaggi di verifica. Le seguenti regioni hanno buoni tassi di consegna e dovrebbero funzionare bene per l'autenticazione tramite telefono. Come indicato, alcuni corrieri non sono disponibili in una regione a causa di tassi di successo della consegna scarsi.
| Regione | Codice |
|---|---|
| AD | Andorra |
| AE | Emirati Arabi Uniti |
| AF | Afghanistan |
| AG | Antigua e Barbuda |
| AL | Albania |
| AM | Armenia |
| AO | Angola |
| AR | Argentina |
| AS | Samoa americane |
| AT | Austria |
| AU | Australia |
| AW | Aruba |
| AZ | Azerbaigian |
| BA | Bosnia ed Erzegovina |
| BB | Barbados |
| BD | Bangladesh |
| BE | Belgio |
| BF | Burkina Faso |
| BG | Bulgaria |
| BJ | Benin |
| BM | Bermuda |
| BN | Brunei Darussalam |
| BO | Bolivia |
| BR | Brasile |
| BS | Bahamas |
| BT | Bhutan |
| BW | Botswana |
| BY | Bielorussia |
| BZ | Belize |
| CA | Canada |
| CD | Congo (Kinshasa) |
| CF | Repubblica Centrafricana |
| CG | Congo (Brazzaville) |
| CH | Svizzera |
| CI | Costa d'Avorio |
| CK | Isole Cook |
| CL | Cile |
| CM | Camerun |
| CO | Colombia |
| CR | Costa Rica |
| CV | Capo Verde |
| CW | Curaçao |
| CY | Cipro |
| CZ | Repubblica Ceca |
| DE | Germania |
| DJ | Gibuti |
| DK | Danimarca |
| DM | Dominica |
| DO | Repubblica Dominicana |
| DZ | Algeria |
| EC | Ecuador |
| EG | Egitto |
| ES | Spagna |
| ET | Etiopia |
| FI | Finlandia |
| FJ | Figi |
| FK | Isole Falkland (Malvine) |
| FM | Micronesia, Stati Federati di |
| FO | Isole Fær Øer |
| FR | Francia |
| GA | Gabon |
| GB | Regno Unito |
| DR | Grenada |
| GE | Georgia |
| GF | Guyana francese |
| GG | Guernsey |
| GH | Ghana |
| GI | Gibilterra |
| GL | Groenlandia |
| GM | Gambia |
| GP | Guadalupa |
| GQ | Guinea Equatoriale |
| GR | Grecia |
| GT | Guatemala |
| GY | Guiana |
| HK | Hong Kong, RAS di Cina |
| HN | Honduras |
| HR | Croazia |
| 1T | Haiti |
| HU | Ungheria |
| ID | Indonesia |
| IE | Irlanda |
| IL | Israele |
| IM | Isola di Man |
| IN | India |
| IQ | Iraq |
| IT | Italia |
| JE | Jersey |
| JM | Giamaica |
| JO | Giordania |
| JP | Giappone |
| KE | Kenya |
| KG | Kirghizistan |
| KH | Cambogia |
| KM | Comore |
| KN | Saint Kitts e Nevis |
| KR | Corea del Sud |
| KW | Kuwait |
| KY | Isole Cayman |
| KZ | Kazakistan |
| LA | Lao PDR |
| LB | Libano |
| LC | Santa Lucia |
| LI | Liechtenstein |
| LK | Sri Lanka |
| LS | Lesotho |
| LT | Lituania |
| LU | Lussemburgo |
| LV | Lettonia |
| LY | Libia |
| MA | Marocco |
| MD | Moldavia |
| ME | Montenegro |
| MF | Saint Martin (parte francese) |
| MG | Madagascar |
| MK | Macedonia, Repubblica di |
| MM | Myanmar |
| MN | Mongolia |
| MO | Macao, RAS di Cina |
| MS | Montserrat |
| MT | Malta |
| MU | Mauritius |
| MW | Malawi |
| MX | Messico |
| MY | Malaysia |
| MZ | Mozambico |
| NA | Namibia |
| NC | Nuova Caledonia |
| NE | Niger |
| NF | Isola Norfolk |
| NG | Nigeria |
| NI | Nicaragua |
| NL | Paesi Bassi |
| NO | Norvegia |
| NP | Nepal |
| NZ | Nuova Zelanda |
| OM | Oman |
| PA | Panama |
| PE | Perù |
| PG | Papua Nuova Guinea |
| PH | Filippine |
| PK | Pakistan |
| PL | Polonia |
| PM | Saint-Pierre e Miquelon |
| PR | Portorico |
| PS | Territorio palestinese |
| PT | Portogallo |
| PY | Paraguay |
| QA | Qatar |
| RE | Riunione |
| RO | Romania |
| RS | Serbia |
| RU | Federazione Russa |
| RW | Ruanda |
| SA | Arabia Saudita |
| SC | Seychelles |
| SE | Svezia |
| SG | Singapore |
| RI | Sant'Elena |
| SI | Slovenia |
| SK | Slovacchia |
| SL | Sierra Leone |
| SN | Senegal |
| SR | Suriname |
| ST | São Tomé e Príncipe |
| SV | El Salvador |
| SZ | Regno di eSwatini |
| TC | Isole Turks e Caicos |
| TG | Togo |
| TH | Thailandia |
| TL | Timor Est |
| Marchio | Turkmenistan |
| TO | Tonga |
| TR | Turchia |
| TT | Trinidad e Tobago |
| TW | Taiwan, Repubblica di Cina |
| TZ | Tanzania, Repubblica Unita di |
| UA | Ucraina |
| UG | Uganda |
| US | Stati Uniti d'America |
| UY | Uruguay |
| UZ | Uzbekistan |
| VC | Saint Vincent e Grenadine |
| VE | Venezuela (Repubblica Bolivariana) |
| VG | Isole Vergini britanniche |
| VI | Isole Vergini Americane |
| VN | Vietnam |
| WS | Samoa |
| YE | Yemen |
| YT | Mayotte |
| ZA | Sudafrica |
| ZM | Zambia |
| ZW | Zimbabwe |
Cosa è successo agli SMS senza costi aggiuntivi nel piano tariffario Spark?
A partire da settembre 2024, per migliorare la sicurezza e la qualità del servizio di autenticazione tramite telefono, i progetti Firebase devono essere collegati a un account Cloud Billing per attivare e utilizzare il servizio SMS.
Come posso prevenire l'abuso di SMS quando utilizzo l'autenticazione tramite telefono?
Per proteggere il tuo progetto dal pumping del traffico SMS e dall'abuso di API, segui questi passaggi:
Valuta la possibilità di impostare un criterio per la regione SMS
Visualizzare l'utilizzo degli SMS a livello regionale.
Cerca le regioni con un numero molto elevato di SMS inviati e un numero molto basso (o pari a zero) di SMS verificati. Il rapporto tra verificati e inviati è il tasso di successo. I tassi di successo sani rientrano comunemente nell'intervallo 70-85%, poiché gli SMS non sono un protocollo di recapito garantito e alcune regioni potrebbero subire abusi. Tassi di successo inferiori al 50% implicano molti SMS inviati, ma pochi accessi riusciti, il che è un indicatore comune di malintenzionati e di aumento artificiale del traffico SMS.
Utilizza le norme relative alle regioni SMS per negare le regioni SMS con tassi di successo bassi o consentire solo determinate regioni se la tua app è destinata alla distribuzione solo in determinati mercati.
Limita i domini di autenticazione autorizzati
Utilizza la
dashboard delle impostazioni di autenticazione
per gestire i domini autorizzati. Il dominio localhost viene aggiunto per impostazione predefinita ai
domini di autenticazione approvati per semplificare lo sviluppo. Valuta la possibilità di rimuovere
localhost dai domini autorizzati nel tuo progetto di produzione per
impedire ai malintenzionati di eseguire codice sul localhost proprio per accedere al tuo
progetto di produzione.
Attiva e applica App Check
Attiva App Check per proteggere il tuo progetto dall'abuso di API attestando che le richieste provengono solo da applicazioni associate al tuo progetto.
Per utilizzare App Check con Firebase Authentication, devi eseguire l'upgrade a Firebase Authentication with Identity Platform.
Ricorda che devi applicare App Check per Authentication nella console Firebase (valuta la possibilità di monitorare il traffico prima dell'applicazione). Inoltre, controlla di nuovo l'elenco dei siti approvati di reCAPTCHA Enterprise per verificare che contenga solo i tuoi siti di produzione e che l'elenco delle applicazioni registrate al tuo progetto in App Check sia accurato.
Tieni presente che App Check contribuisce a proteggere dagli attacchi automatici affermando che la chiamata proviene da una delle tue applicazioni registrate. Non impedisce agli utenti di utilizzare la tua app in modi non previsti (ad esempio, avviare e non completare mai i flussi di accesso per generare SMS inviati).
I numeri di telefono trasferiti a un nuovo operatore sono supportati dall'autenticazione tramite telefono?
Al momento, i numeri trasferiti tra operatori comporteranno la mancata ricezione di tutti gli SMS per gli utenti finali. Non esiste una soluzione alternativa e Firebase sta lavorando alla risoluzione del problema.
Nella mia app per Android, perché ricevo il seguente
errore:
Google sign in failed ?
Google sign in failedSegui i passaggi per la risoluzione dei problemi riportati in queste domande frequenti se ricevi il seguente errore:
GoogleFragment: Google sign in failed
com.google.android.gms.common.api.ApiException: 13: Unable to get token.
at
com.google.android.gms.internal.auth-api.zbay.getSignInCredentialFromIntent(com.google.android.gms:play-services-auth@@20.3.0:6)
Assicurati che l'accesso con Google sia attivato correttamente come provider di autenticazione:
Nella console Firebase, apri la sezione Authentication.
Nella scheda Metodo di accesso, disabilita e riabilita il metodo di accesso Google (anche se è già abilitato):
Apri il metodo di accesso Google, disattivalo e fai clic su Salva.
Riapri il metodo di accesso Google, attivalo e fai clic su Salva.
Assicurati che la tua app utilizzi il file di configurazione Firebase aggiornato (
google-services.json).
Ottieni il file di configurazione della tua app.Controlla se l'errore persiste. In questo caso, continua con il passaggio successivo per la risoluzione dei problemi.
Assicurati che siano presenti i client OAuth 2.0 sottostanti richiesti.
Nella pagina Credenziali della console Google Cloud, cerca nella sezione ID client OAuth 2.0.
Se i client OAuth 2.0 non sono presenti (e hai eseguito tutti i passaggi per la risoluzione dei problemi sopra indicati), contatta l'assistenza.
Nella mia app per la piattaforma Apple, perché ricevo il seguente errore:
You must specify <clientID> in <GIDConfiguration> ?
You must specify <clientID> in <GIDConfiguration>Segui i passaggi per la risoluzione dei problemi riportati in queste domande frequenti se ricevi il seguente errore:
You must specify |clientID| in |GIDConfiguration|
Assicurati che l'accesso con Google sia attivato correttamente come provider di autenticazione:
Nella console Firebase, apri la sezione Authentication.
Nella scheda Metodo di accesso, disabilita e riabilita il metodo di accesso Google (anche se è già abilitato):
Apri il metodo di accesso Google, disattivalo e fai clic su Salva.
Riapri il metodo di accesso Google, attivalo e fai clic su Salva.
Assicurati che la tua app utilizzi il file di configurazione Firebase aggiornato (
GoogleService-Info.plist).
Ottieni il file di configurazione della tua app.Controlla se l'errore persiste. In questo caso, continua con il passaggio successivo per la risoluzione dei problemi.
Assicurati che siano presenti i client OAuth 2.0 sottostanti richiesti.
Nella pagina Credenziali della console Google Cloud, cerca nella sezione ID client OAuth 2.0.
Se i client OAuth 2.0 non sono presenti (e hai eseguito tutti i passaggi per la risoluzione dei problemi sopra indicati), contatta l'assistenza.
Nella mia app web, perché ricevo il seguente
errore:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID ?
AuthErrorCode.INVALID_OAUTH_CLIENT_IDSegui i passaggi per la risoluzione dei problemi riportati in queste domande frequenti se ricevi il seguente errore:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
Assicurati che l'accesso con Google sia attivato correttamente come provider di autenticazione:
Nella console Firebase, apri la sezione Authentication.
Nella scheda Metodo di accesso, disabilita e riabilita il metodo di accesso Google (anche se è già abilitato):
Apri il metodo di accesso Google, disattivalo e fai clic su Salva.
Riapri il metodo di accesso Google, attivalo e fai clic su Salva.
Inoltre, nella configurazione del provider di accesso Google della sezione Authentication, assicurati che l'ID client OAuth e il client secret corrispondano al client web visualizzato nella pagina Credenziali della console Google Cloud (consulta la sezione ID client OAuth 2.0).
Nella mia app web, perché l'accesso con reindirizzamenti
non riesce e viene visualizzato il seguente errore:
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation ?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operationSegui i passaggi per la risoluzione dei problemi riportati in queste domande frequenti se ricevi il seguente errore:
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
Questo errore è molto probabilmente dovuto al fatto che il tuo dominio di reindirizzamento non è elencato come dominio autorizzato per Firebase Authentication oppure la chiave API che utilizzi con il servizio Firebase Authentication non è valida.
Innanzitutto, assicurati che YOUR_REDIRECT_DOMAIN sia presente nell'elenco dei domini autorizzati per il tuo progetto Firebase. Se il tuo dominio di reindirizzamento è già elencato, continua a risolvere i problemi relativi a una chiave API non valida.
Per impostazione predefinita, l'SDK JavaScript Firebase Authentication si basa sulla chiave API del tuo progetto Firebase
etichettata come Browser key e la utilizza per verificare che
un URL di reindirizzamento di accesso sia valido in base all'elenco dei domini autorizzati.
Authentication ottiene questa chiave API a seconda di come accedi all'SDK Authentication:
Se utilizzi Hostinghelper di autenticazione forniti da Firebase per consentire agli utenti di accedere con l'SDK JS Authentication, Firebase ottiene automaticamente la chiave API con il resto della configurazione di Firebase ogni volta che esegui il deployment su Firebase Hosting. Assicurati che il
authDomainnella tua app webfirebaseConfigsia configurato correttamente per utilizzare uno dei domini per quel sito Hosting. Puoi verificarlo andando suhttps://authDomain__/firebase/init.json, e controllando cheprojectIdcorrisponda a quello difirebaseConfig.Se self-host il codice di accesso, puoi utilizzare un file
__/firebase/init.jsonper fornire la configurazione Firebase all'helper di reindirizzamento dell'SDK Firebase Authentication JS self-hosted. La chiave API eprojectIdelencati in questo file di configurazione devono corrispondere all'app webfirebaseConfig.
Verifica che questa chiave API non sia stata eliminata: vai al riquadro API e servizi > Credenziali della console Google Cloud in cui sono elencate tutte le chiavi API per il tuo progetto.
Se
Browser keynon è stato eliminato, controlla quanto segue:Assicurati che l'API Firebase Authentication sia nell'elenco delle API consentite per la chiave di accesso (scopri di più sulle limitazioni delle API per le chiavi API).
Se esegui l'hosting autonomo del codice di accesso, assicurati che la chiave API elencata nel file
__/firebase/init.jsoncorrisponda a quella nella console Google Cloud. Correggi la chiave nel file, se necessario, quindi esegui nuovamente il deployment dell'app.Se la
Browser keyè stata eliminata, puoi chiedere a Firebase di generare una nuova chiave API: nella console Firebase, vai asettings > Impostazioni progetto , poi, nella sezione Le tue app, fai clic sulla tua app web. Questa azione crea automaticamente una chiave API che puoi visualizzare nella sezione Configurazione e configurazione dell'SDK per la tua app web.
Tieni presente che nella console Google Cloud questa nuova chiave API non verrà chiamata
Browser key, ma avrà lo stesso nome del nickname della tua app web Firebase. Se decidi di aggiungere limitazioni API a questa nuova chiave API, assicurati che l'API Firebase Authentication sia presente nell'elenco delle API consentite.Una volta creata la nuova chiave API, completa i passaggi applicabili riportati di seguito:
Se utilizzi URL Hosting riservati, esegui nuovamente il deployment dell'app su Firebase in modo che possa ottenere automaticamente la nuova chiave API con il resto della configurazione di Firebase.
Se esegui l'hosting autonomo del codice di accesso, copia la nuova chiave API e aggiungila al file
__/firebase/init.json, poi esegui di nuovo il deployment dell'app.
Come faccio a creare manualmente un client web OAuth?
Apri la pagina Credenziali della console Google Cloud.
Nella parte superiore della pagina, seleziona Crea credenziali > ID client OAuth.
Se ti viene chiesto di configurare la schermata per il consenso, segui le istruzioni visualizzate sullo schermo, quindi continua con i passaggi successivi di queste domande frequenti.
Crea il client web OAuth:
Per Tipo di applicazione, seleziona Applicazione web.
Per le Origini JavaScript autorizzate, aggiungi quanto segue:
http://localhosthttp://localhost:5000https://PROJECT_ID.firebaseapp.comhttps://PROJECT_ID.web.app
Per gli URI di reindirizzamento autorizzati, aggiungi quanto segue:
https://PROJECT_ID.firebaseapp.com/__/auth/handlerhttps://PROJECT_ID.web.app/__/auth/handler
Salva il client OAuth.
Copia il nuovo ID client OAuth e il client secret negli appunti.
Nella console Firebase, apri la sezione Authentication.
Nella scheda Metodo di accesso, apri il provider Accesso con Google, quindi incolla l'ID client e il client secret del server web che hai appena creato e copiato dalla console Google Cloud. Fai clic su Salva.
Come viene determinato %APP_NAME% per il modello di email per l'email di conferma che può essere inviata a un utente quando si registra utilizzando un indirizzo email e una password?
Prima di dicembre 2022, il %APP_NAME% nel modello di email veniva compilato con
il nome del brand OAuth di cui veniva eseguito il provisioning automatico ogni volta che un'app per Android
veniva registrata nel progetto Firebase. Ora, poiché il brand OAuth viene
fornito solo quando è abilitato l'accesso con Google, di seguito viene descritto come
viene determinato %APP_NAME%:
Se il nome del brand OAuth è disponibile,
%APP_NAME%nel modello di email corrisponderà al nome del brand OAuth (come prima di dicembre 2022).Se il nome del brand OAuth non è disponibile, ecco come viene determinato
%APP_NAME%nel modello di email:Per le app web,
%APP_NAME%sarà il nome del sito Firebase Hosting predefinito (il valore che precede.firebaseapp.come.web.appe di solito l'ID progetto Firebase).Per le app mobile:
Se nella richiesta è presente il nome del pacchetto Android o l'ID pacchetto iOS, allora
%APP_NAME%sarà il nome dell'app utilizzato nel Play Store o nell'App Store (rispettivamente).In caso contrario,
%APP_NAME%sarà il nome del sito Firebase Hosting predefinito (il valore che precede.firebaseapp.come.web.appe in genere l'ID progetto Firebase).
Tieni presente che se la ricerca del nome del sito Firebase Hosting predefinito non va a buon fine, l'ultimo fallback consiste nell'utilizzare l'ID progetto Firebase come
%APP_NAME%.