Scopri di più sull'utilizzo e sulla gestione delle chiavi API per Firebase
Una chiave API è una stringa univoca utilizzata per inoltrare le richieste al progetto Firebase quando interagisci con i servizi Firebase e Google. In questa pagina vengono descritti
informazioni di base sulle chiavi API, nonché best practice per l'utilizzo e
e la gestione delle chiavi API
con le app Firebase.
Informazioni generali sulle chiavi API e su Firebase
Le chiavi API per Firebase sono diverse dalle chiavi API tipiche
Diversamente dal modo in cui vengono solitamente utilizzate le chiavi API, le chiavi API per i servizi Firebase
non utilizzato per controllare l'accesso alle risorse di backend; che può essere fatto solo
con Firebase Security Rules (per controllare quali utenti finali possono accedere alle risorse) e
Firebase App Check (per controllare quali app possono accedere alle risorse).
In genere, è necessario salvaguardare meticolosamente le chiavi API (ad esempio,
utilizzando un servizio di Vault o impostando le chiavi come variabili di ambiente); ma
È possibile includere le chiavi API per i servizi Firebase nel codice o nella configurazione di check-in
.
Un progetto Firebase può avere molte chiavi API, ma ogni chiave API può essere
associati a un singolo progetto Firebase.
Firebase crea automaticamente le chiavi API per il tuo progetto quando esegui una delle seguenti operazioni:
Crea un progetto Firebase > Browser key creati automaticamente
Crea un'app Apple Firebase > iOS key creata automaticamente
Crea un'app Firebase per Android > Android key creati automaticamente
di Gemini Advanced.
Puoi anche creare le tue chiavi API in
Console Google Cloud,
ad esempio per lo sviluppo o il debug. Scopri di più su quando questa opzione potrebbe essere consigliata più avanti in questa pagina.
Trovare le chiavi API
Puoi visualizzare e gestire tutte le chiavi API del tuo progetto nel
API e Servizi > Credenziali
nella console Google Cloud.
Puoi anche trovare la chiave API abbinata automaticamente a un
App Firebase nelle seguenti posizioni. Di
Per impostazione predefinita, tutte le app Firebase del tuo progetto per la stessa piattaforma (Apple
Android rispetto al web) utilizzeranno la stessa chiave API.
App Firebase Apple: trova la chiave API per la corrispondenza automatica in Firebase
config, GoogleService-Info.plist, nel
API_KEY.
App Firebase per Android: trova la chiave API per la corrispondenza automatica nel
di configurazione di Firebase, google-services.json, nel
current_key.
App web Firebase: trova la chiave API per la corrispondenza automatica in Firebase
config, nel campo apiKey.
Utilizzo di una chiave API
Le chiavi API vengono utilizzate per identificare il progetto Firebase durante l'interazione con
servizi Firebase/Google. Nello specifico, vengono utilizzati per associare le richieste API
con il tuo progetto per quota e fatturazione. Sono utili anche per accedere
e i dati pubblici.
Ad esempio, puoi utilizzare esplicitamente una chiave API passandone il valore in un indirizzo REST
chiamata API come parametro di query. Questo esempio mostra come inviare una richiesta
alla
API Dynamic Links link Shorter:
POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY
Quando la tua app effettua una chiamata a un'API Firebase che richiede una chiave API fornita
dal client web/mobile, l'app cercherà automaticamente
File/oggetto di configurazione Firebase per la chiave API del progetto. Tuttavia, puoi
fornire chiavi API per l'app utilizzando un meccanismo diverso, incluso l'ambiente
come la codifica one-hot
delle variabili categoriche.
Esamina e applica le limitazioni appropriate alle chiavi API (consigliato)
Sebbene non sia necessario trattare una chiave API per i servizi Firebase come un
secret, devi rivedere e applicare restrizioni e limiti come descritto in
.
di Gemini Advanced.
Esamina le API aggiunte automaticamente alla lista consentita per le tue chiavi API Firebase
Quando Firebase crea una chiave API nel tuo progetto, aggiungiamo automaticamente
"Restrizioni API"
a quella chiave. Le API aggiunte a questa lista consentita sono API correlate a Firebase che
al client deve fornire una chiave API insieme alla chiamata. Tieni presente che la maggior parte
Le API richieste per l'utilizzo dei servizi Firebase non devono necessariamente
lista consentita per le tue chiavi API.
Poiché Firebase aggiunge le API necessarie per tutti i servizi Firebase, la lista consentita per una chiave API potrebbe includere API per prodotti che non utilizzi.
Puoi rimuovere le API dalla lista consentita, ma presta molta attenzione a non
Rimuovere le API richieste per Firebase e i servizi Firebase che utilizzi
(consulta
elenco delle API correlate a Firebase
che devono essere nella lista consentita per ciascun servizio / prodotto). In caso contrario,
riceverai errori quando effettui chiamate ai servizi Firebase.
Aumenta la quota se utilizzi l'Authentication basata su password
Se usi l'Firebase Authentication basata su password e qualcuno entra in possesso della tua API
non potranno accedere ai database del progetto Firebase
o Cloud Storage di dati a condizione che siano protetti da
Firebase Security Rules. Tuttavia, potrebbero utilizzare la tua chiave API per accedere agli endpoint di autenticazione di Firebase e inviare richieste di autenticazione per il tuo progetto.
Per ridurre la possibilità che qualcuno usi in modo improprio una chiave API
tentare un attacco di forza bruta, puoi ridurre la quota predefinita
identitytoolkit.googleapis.com endpoint per riflettere il traffico normale
le aspettative della tua app. Tieni presente che se aumenti questa quota e la tua app
un aumento improvviso degli utenti, potresti ricevere errori di accesso finché non aumenterai la quota.
Puoi modificare le quote API del progetto nella
Console Google Cloud.
Utilizza chiavi API distinte e limitate per qualsiasi servizio non Firebase
Sebbene in genere non sia necessario trattare le chiavi API utilizzate per i servizi Firebase come segrete, devi adottare alcune precauzioni aggiuntive per le chiavi API che utilizzi con altre API Google Cloud.
Se utilizzi un'API Google Cloud (su qualsiasi piattaforma) non destinata a Firebase
servizio / prodotto, consigliamo vivamente di creare chiavi API distinte e limitate
per l'uso con queste API. Ciò è particolarmente importante se l'API è per un
servizio Google Cloud fatturabile.
Ad esempio, se utilizzi Firebase ML e le API Cloud Vision su iOS,
devi creare chiavi API separate che utilizzi solo
per accedere alle API Cloud Vision.
Utilizzando chiavi API limitate e separate per le API non Firebase, puoi ruotare
sostituire le chiavi se necessario e aggiungere ulteriori limitazioni all'API
chiavi
senza interrompere l'uso dei servizi Firebase.
Visualizza le istruzioni per la creazione di chiavi specifiche delle API
Queste istruzioni descrivono come creare una chiave API limitata e separata per un
API fake chiamata Super Service API.
Passaggio 1: configura le chiavi API esistenti per impedire l'accesso a Super Service API
Apri la scheda Credentials (Credenziali)
della console Google Cloud. Quando richiesto, seleziona il progetto.
Per ogni chiave API esistente nell'elenco, apri la visualizzazione di modifica.
Nella sezione Restrizioni delle API, seleziona Limita chiave, quindi aggiungi all'elenco tutte le API a cui vuoi che la chiave API abbia accesso. Assicurati che
di non includere l'API per la quale stai creando una chiave API separata
(in questo esempio, Super Service API).
Quando configuri le restrizioni API di una chiave API, accetti esplicitamente
che dichiara le API a cui ha accesso la chiave. Per impostazione predefinita, quando
Nella sezione Restrizioni API è selezionata l'opzione Non limitare la chiave, ovvero una chiave API
può essere utilizzato per accedere a qualsiasi API abilitata per il progetto.
Ora le tue chiavi API esistenti non concederanno l'accesso a Super Service API, ma ogni chiave continuerà a funzionare per tutte le API che hai aggiunto all'elenco delle limitazioni delle API.
Passaggio 2: crea e utilizza una nuova chiave API per accedere a Super Service API
Torna alla scheda Credenziali
. Assicurati che il progetto Firebase sia ancora selezionato.
Fai clic su Crea credenziali > chiave API. Prendi nota della nuova chiave API, quindi
fai clic su Limita chiave.
Nella sezione Restrizioni delle API, seleziona Limita chiave, quindi aggiungi all'elenco solo il Super Service API.
Questa nuova chiave API concede l'accesso solo all'Super Service API.
Configura l'app e i servizi in modo che utilizzino la nuova chiave API.
Utilizza chiavi API specifiche dell'ambiente (consigliato)
Se configuri progetti Firebase diversi per ambienti diversi, ad esempio
gestione temporanea e produzione, è importante che ogni istanza di app interagisca
progetto Firebase corrispondente. Ad esempio, l'istanza dell'app di gestione temporanea
non comunicare mai con il tuo progetto Firebase di produzione. Ciò significa anche che la tua app di staging deve utilizzare le chiavi API associate al progetto Firebase di staging.
Per ridurre i problemi che promuovono modifiche al codice dallo sviluppo alla gestione temporanea
di produzione, invece di includere le chiavi API nel codice stesso, impostale come
variabili di ambiente o di includerle in un file di configurazione.
Tieni presente che se utilizzi Firebase Local Emulator Suite per lo sviluppo insieme
con Firebase ML, devi creare e utilizzare una chiave API solo per il debug. Istruzioni
per creare questo tipo di chiave, si trovano
Firebase ML documenti.
Domande frequenti e risoluzione dei problemi
Domande frequenti
Le chiavi API per i servizi Firebase sono limitate per impostazione predefinita?
Sì. Per impostazione predefinita, sono tutte le chiavi API di cui Firebase esegue automaticamente il provisioning per l'utilizzo
Le API correlate a Firebase
"Restrizioni API"
applicati automaticamente. Consulta le
delle API relative a Firebase
presenti in questa lista consentita.
Le API aggiunte a questa lista consentita sono quelle chiamate dai servizi Firebase da
al codice client e richiedono chiavi API per l'identificazione del progetto Firebase o
dell'app. Tieni presente che la maggior parte delle API richieste per l'utilizzo dei servizi Firebase non
devono far parte della lista consentita delle tue chiavi API.
Poiché Firebase aggiunge le API necessarie per tutti i servizi Firebase,
la lista consentita di una chiave API potrebbe includere API per prodotti che non utilizzi. Tu
puoi rimuovere le API dalla lista consentita, ma devi fare molta attenzione a non rimuovere
le API richieste per Firebase e i servizi Firebase che utilizzi (consulta le
elenco delle API correlate a Firebase
che devono essere nella lista consentita per ciascun servizio / prodotto). In caso contrario,
riceveranno errori quando effettui chiamate ai servizi Firebase.
Puoi visualizzare tutte le tue chiavi API e le relative "restrizioni API" nel
API e Servizi > Credenziali
nella console Google Cloud.
Tieni presente quanto segue su come Firebase applica queste "restrizioni API":
A partire da maggio 2024, per tutte le nuove chiavi API di cui Firebase è stato eseguito il provisioning automatico
limitato automaticamente
delle API correlate a Firebase.
A partire da maggio 2024, tutte le chiavi API esistenti e senza restrizioni di cui Firebase aveva eseguito precedentemente il provisioning automatico saranno limitate all'elenco delle API correlate a Firebasepiù a qualsiasi API attualmente abilitata del progetto.
Eventuali chiavi API esistenti e già limitate che Firebase aveva in precedenza
di cui è stato eseguito il provisioning automatico non sono state modificate.
Le eventuali chiavi API esistenti non di cui Firebase è stato eseguito automaticamente non sono state
è cambiato.
di Gemini Advanced.
Come posso determinare quale chiave API
è associato alla mia app Firebase?
Puoi utilizzare una qualsiasi delle seguenti opzioni per determinare quale chiave API
associati alla tua app Firebase:
Console Firebase
Vai a settingsImpostazioni progetto,
e scorri verso il basso fino alla scheda Le tue app.
Seleziona l'app che ti interessa.
Ottieni il file o l'oggetto di configurazione Firebase per l'app che ti interessa e poi
trova la relativa chiave API:
Apple: scarica l'GoogleService-Info.plist, quindi trova il
Campo API_KEY
Android: scarica google-services.json, trova la configurazione
l'app che ti interessa (cerca il nome del pacchetto), quindi trova
Campo current_key
Web: seleziona l'opzione Config e individua il campo apiKey
Interfaccia a riga di comando Firebase
Per ottenere il file o l'oggetto di configurazione Firebase per l'app che ti interessa, esegui
il seguente comando:
firebase apps:sdkconfig PLATFORMFIREBASE_APP_ID
PLATFORM (uno dei seguenti): IOS | ANDROID | WEB
FIREBASE_APP_ID: l'identificatore univoco assegnato da Firebase per
la tua app Firebase (trova il tuo ID app)
Nella configurazione Firebase stampata dell'app, trova la relativa chiave API:
Mela: trova il campo API_KEY.
Android: individua la configurazione dell'app di interesse (cerca il nome del pacchetto) e poi il campo current_key
Web: trova il campo apiKey
API REST
Ottieni il apiKeyId (l'UID) della chiave API chiamando l'endpoint applicabile per l'app di interesse e poi passando il valore apiKeyId al passaggio successivo.
Il valore keyString è lo stesso che puoi trovare nella
artefatto di configurazione
(Apple |
Android |
Web).
Posso
nella configurazione di Firebase sono elencate due chiavi API per la stessa app Firebase.
file/oggetto?
App di Firebase per Apple: ogni app ha il proprio file di configurazione e può avere solo
una chiave API elencata.
App Android Firebase: tutte le app Android nel progetto Firebase sono
elencate nello stesso file di configurazione e ogni app può avere una sola chiave API.
in elenco. Ogni app in questo file di configurazione può avere
una chiave diversa elencata,
però.
App web di Firebase: ogni app ha il proprio oggetto di configurazione e può avere elencata una sola chiave API.
Tuttavia, puoi utilizzare più chiavi API con una sola app. Devi fornire un meccanismo per consentire alla tua app di accedere a queste altre chiavi API, ad esempio tramite una variabile di ambiente. Il meccanismo di accesso alle altre chiavi API non può dipendere da queste
Chiavi API elencate nel file o nell'oggetto di configurazione Firebase.
In che modo Firebase
sapere quale chiave API associare a un'app (ad esempio nella configurazione di Firebase
file/oggetto)?
Se Firebase non trova chiavi limitate corrispondenti, verrà elencata in
il file/l'oggetto di configurazione iOS key per le app Apple, il Android key per
App per Android e Browser key per le app web (supponendo che queste chiavi esistano)
e non sono presenti "restrizioni per le applicazioni" che impediscono la corrispondenza
app).
Posso eliminare manualmente la chiave API e il campo dall'oggetto/dal file di configurazione di Firebase?
Sì, puoi eliminare manualmente la chiave API dall'oggetto/dal file di configurazione. Tuttavia,
devi fornire un altro meccanismo per consentire alla tua app di accedere a una chiave API
(ad esempio tramite una variabile di ambiente). In caso contrario, tutte le chiamate ai servizi Firebase
non riuscirà.
Posso farlo manualmente
Modificare il file o l'oggetto di configurazione Firebase con chiavi API diverse?
Sì, puoi modificare manualmente un file o un oggetto di configurazione per associare una chiave API diversa
con un'app.
Posso spostare una chiave API da un progetto Firebase a un altro?
No, una chiave API identifica solo un progetto specifico e non può essere spostata in un altro
progetto.
Che cosa succede se
Eliminare una chiave API elencata nella console Google Cloud?
Se elimini una chiave API utilizzata da un'app, verranno effettuate le chiamate API da quell'app
non riuscirà. Potresti ricevere report, email o errori che stai tentando di utilizzare
una chiave API non valida.
L'eliminazione di una chiave API è definitiva e non può essere annullata.
Quale
Le API sono obbligatorie nella sezione "Restrizioni API" per una chiave API Firebase?
Per una chiave API Firebase, le uniche API che devono trovarsi nel percorso
"Restrizioni API" sono le API che richiedono al client di fornire una
chiave API insieme alla chiamata. Tieni presente che pochissime API correlate a Firebase dispongono di questo
requisito. La maggior parte delle API correlate a Firebase attivate nel progetto non deve essere presente nella lista consentita "Restrizioni API" della chiave.
Utilizza la seguente tabella per determinare quali API relative a Firebase devono essere
incluse nelle "restrizioni API" lista consentita per una chiave API Firebase. Ricorda che
le chiavi API di Firebase devono essere utilizzate solo per i servizi Firebase. Scopri di più su
creazione in corso
chiavi API distinte e limitate per tipi specifici di API.
Puoi visualizzare e gestire le chiavi API del tuo progetto nel
API e Servizi > Credenziali
nella console Google Cloud.
Nome API (nome servizio)
Nome visualizzato dell'API
Servizio/prodotto Firebase associato
firebase.googleapis.com
API Firebase Management
tutti i prodotti
logging.googleapis.com
API Cloud Logging
tutti i prodotti
firebaseinstallations.googleapis.com
API Firebase Installations
Cloud Messaging, Crashlytics, In-App MessagingPerformance Monitoring, Remote Config e Firebase ML
firebaseappcheck.googleapis.com
API Firebase App Check
App Check
firebaseappdistribution.googleapis.com
API Firebase App Distribution
App Distribution
firebaseapptesters.googleapis.com
API Firebase App Testers
App Distribution
identitytoolkit.googleapis.com
API Identity Toolkit
Authentication
securetoken.googleapis.com
API Token Service
Authentication
firebaserules.googleapis.com *
API Firebase Rules
Cloud Firestore, Cloud Storage, Realtime Database
datastore.googleapis.com
API Cloud Datastore
Cloud Firestore
firestore.googleapis.com
API Google Cloud Firestore
Cloud Firestore
fcmregistrations.googleapis.com
API FCM Registration
Cloud Messaging
firebasestorage.googleapis.com
API Cloud Storage for Firebase
Cloud Storage
firebasedynamiclinks.googleapis.com
API Firebase Dynamic Links
Dynamic Links
firebasehosting.googleapis.com *
API Firebase Hosting
Hosting
firebaseinappmessaging.googleapis.com
API In-App Messaging Firebase
In-App Messaging
firebaseml.googleapis.com
API Firebase ML
Firebase ML, Vertex AI in Firebase
mlkit.googleapis.com **
API ML Kit
Firebase ML
mobilecrashreporting.googleapis.com
Mobile Crash Reporting API
Performance Monitoring
play.googleapis.com
API Google Play Android Developer
Performance Monitoring
firebaseremoteconfig.googleapis.com
API Firebase Remote Config
Performance Monitoring, Remote Config
firebaseremoteconfigrealtime.googleapis.com
API Firebase Remote Config Realtime
Performance Monitoring, Remote Config
cloudconfig.googleapis.com **
N/D
Remote Config
firebasedatabase.googleapis.com *
API Firebase Realtime Database
Realtime Database
* Obbligatorio solo se utilizzi la chiave API Firebase con terze parti
o l'accesso REST diretto al servizio o al prodotto Firebase.
** Obbligatorio per le versioni precedenti dell'SDK del prodotto. Se utilizzi
la versione più recente dell'SDK, l'API non deve essere presente nella lista consentita della chiave.
Risoluzione dei problemi
Come faccio a
correggi un errore API_KEY_SERVICE_BLOCKED o 403: accesso negato
richieste a questa API sono bloccate?
Segui le indicazioni riportate in queste domande frequenti se ricevi un messaggio di errore API_KEY_SERVICE_BLOCKED
o un messaggio di errore simile al seguente:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
È probabile che la chiave API utilizzata dall'app per chiamare l'API abbia
"Restrizioni API"
e la lista consentita della chiave non include quell'API.
Se ricevi questo errore quando provi a utilizzare un servizio non Firebase:
consigliamo vivamente di creare una nuova chiave API specifica per quel servizio e
tramite Google Cloud CLI
o tramite l'API Compute Engine. Le chiavi API Firebase devono essere utilizzate solo per servizi / prodotti Firebase.
Scopri di più sulla creazione
chiavi API distinte e limitate per tipi specifici di API.
Come faccio a
correggere questo errore? "Impossibile recuperare l'ID misurazione di questa app Firebase dal
server."
È probabile che alla chiave API utilizzata dalla tua app web siano state applicate le "limitazioni API". In questo caso, accertati che l'API Firebase Management
è nell'elenco delle API consentite.
Ho ricevuto un'email o un messaggio di errore che mi informa che la mia chiave API non è valida. Che cosa è successo e come posso risolvere il problema?
Di seguito sono riportate alcune delle cause più comuni di chiavi API non valide:
La chiave API è
"Restrizioni relative alle chiavi API"
che la rendono non corrispondente all'app che tenta di utilizzare la chiave
("restrizioni delle applicazioni") o inutilizzabile per la chiamata dell'API ("API")
Restrizioni").
La chiave API è stata eliminata dal progetto nella console Google Cloud.
La chiave API non è stata creata per l'ID progetto elencato nell'oggetto/file di configurazione Firebase dell'app.