Scopri di più sull'utilizzo e sulla gestione delle chiavi API per Firebase

Una chiave API è una stringa univoca utilizzata per indirizzare le richieste al tuo progetto Firebase quando interagisci con i servizi Firebase e Google. Questa pagina descrive informazioni di base sulle chiavi API, nonché le best practice per l'utilizzo 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

A differenza di come vengono in genere utilizzate, le chiavi API per i servizi Firebase non vengono utilizzate per controllare l'accesso alle risorse di backend; questa operazione può essere eseguita 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, devi proteggere scrupolosamente le chiavi API (ad esempio, utilizzando un servizio di vault o impostando le chiavi come variabili di ambiente); tuttavia, le chiavi API per i servizi Firebase possono essere incluse nel codice o nei file di configurazione archiviati.

Sebbene le chiavi API per i servizi Firebase siano sicure da includere nel codice, devi esaminarle e applicare restrizioni e limiti appropriati.

Creazione di chiavi API

Un progetto Firebase può avere molte chiavi API, ma ogni chiave API può essere associata a un solo progetto Firebase.

Chiavi API create automaticamente da Firebase per le tue app Firebase

Firebase crea automaticamente le chiavi API per il tuo progetto quando esegui una delle seguenti operazioni:

  • Crea un progetto Firebase > Browser key creato automaticamente
  • Crea un'app Apple Firebase > iOS key creazione automatica
  • Crea un'app Firebase per Android > Android key creazione automatica

Puoi anche creare le tue chiavi API nella console Google Cloud, ad esempio per lo sviluppo o il debug. Scopri di più su quando questo potrebbe essere consigliato più avanti in questa pagina.

Trovare le chiavi API

Puoi visualizzare e gestire tutte le chiavi API del tuo progetto nel riquadro API e servizi > Credenziali nella console Google Cloud.

Puoi anche trovare la chiave API che viene abbinata automaticamente a un'app Firebase nei seguenti luoghi. Per impostazione predefinita, tutte le app Firebase del progetto per la stessa piattaforma (Apple, Android o web) utilizzeranno la stessa chiave API.

  • App Apple Firebase: trova la chiave API abbinata automaticamente nel file di configurazione Firebase, GoogleService-Info.plist, nel campo API_KEY.

  • App Firebase per Android: trova la chiave API abbinata automaticamente nel file di configurazione di Firebase, google-services.json, nel campo current_key.

  • App web Firebase: trova la chiave API abbinata automaticamente nell'oggetto di configurazione Firebase, nel campo apiKey.

Utilizzo di una chiave API

Le chiavi API vengono utilizzate per identificare il tuo progetto Firebase quando interagisci con i servizi Firebase/Google. Nello specifico, vengono utilizzati per associare le richieste API al tuo progetto per la quota e la fatturazione. Sono utili anche per accedere ai dati pubblici.

Ad esempio, puoi utilizzare esplicitamente una chiave API passando il relativo valore a una chiamata API REST come parametro di query. Questo esempio mostra come effettuare una richiesta all'Dynamic LinksAPI per l'abbreviazione dei link:

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, la tua app cercherà automaticamente la chiave API del tuo progetto nel file/oggetto di configurazione di Firebase. Tuttavia, puoi fornire le chiavi API per la tua app utilizzando un meccanismo diverso, incluse le variabili di ambiente.

Esamina e applica le limitazioni appropriate alle chiavi API (consigliato)

Sebbene non sia necessario trattare una chiave API per i servizi Firebase come un segreto, devi esaminare e applicare restrizioni e limiti come descritto in questa sezione.

Esaminare le API aggiunte automaticamente alla lista consentita per le chiavi API Firebase

Quando Firebase crea una chiave API nel tuo progetto, aggiungiamo automaticamente "Limitazioni API" a questa chiave. Le API aggiunte a questa lista consentita sono API correlate a Firebase che richiedono al client di fornire una chiave API insieme alla chiamata. Tieni presente che la maggior parte delle API necessarie per l'utilizzo dei servizi Firebase non deve essere inclusa nella lista consentita per le chiavi API.

Poiché Firebase aggiunge le API necessarie per tutti i servizi Firebase, la lista consentita per una chiave API può includere API per prodotti che non utilizzi. 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 l'elenco delle API correlate a Firebase che devono essere incluse nella lista consentita per ogni servizio / prodotto). In caso contrario, si verificheranno errori durante le chiamate ai servizi Firebase.

Riduci la quota se utilizzi Authentication basati su password

Se utilizzi Firebase Authentication basato su password e qualcuno entra in possesso della tua chiave API, non potrà accedere a nessuno dei database del tuo progetto Firebase o ai dati Cloud Storage purché questi dati siano protetti da Firebase Security Rules. Tuttavia, potrebbero utilizzare la tua chiave API per accedere agli endpoint di autenticazione di Firebase ed effettuare richieste di autenticazione per il tuo progetto.

Per ridurre la possibilità che qualcuno possa utilizzare in modo improprio una chiave API per tentare un attacco di forza bruta, puoi ridurre la quota predefinita degli endpoint identitytoolkit.googleapis.com in modo che riflettano le normali aspettative di traffico della tua app. Tieni presente che se riduci questa quota e la tua app acquisisce improvvisamente utenti, potresti riscontrare errori di accesso finché non aumenti la quota. Puoi modificare le quote API del progetto nella console Google Cloud.

Utilizza chiavi API separate e limitate per qualsiasi servizio non Firebase

Sebbene le chiavi API utilizzate per i servizi Firebase non debbano in genere essere trattate come segrete, devi adottare alcune precauzioni aggiuntive con le chiavi API che utilizzi con altre API Google Cloud.

Se utilizzi un'API Google Cloud (su qualsiasi piattaforma) che non è per un servizio / prodotto Firebase, ti consigliamo vivamente di creare chiavi API separate e limitate da utilizzare 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 da utilizzare solo per accedere alle API Cloud Vision.

Utilizzando chiavi API separate e limitate per le API non Firebase, puoi ruotare o sostituire le chiavi quando necessario e aggiungere ulteriori limitazioni alle chiavi API senza interrompere l'utilizzo dei servizi Firebase.

Utilizza chiavi API specifiche per l'ambiente (consigliato)

Se configuri progetti Firebase diversi per ambienti diversi, ad esempio staging e produzione, è importante che ogni istanza dell'app interagisca con il progetto Firebase corrispondente. Ad esempio, l'istanza dell'app di staging non deve mai comunicare con il progetto Firebase di produzione. Ciò significa anche che l'app di staging deve utilizzare le chiavi API associate al progetto Firebase di staging.

Per ridurre i problemi di promozione delle modifiche al codice dallo sviluppo allo staging alla produzione, anziché includere le chiavi API nel codice stesso, impostale come variabili di ambiente o includile in un file di configurazione.

Tieni presente che se utilizzi Firebase Local Emulator Suite per lo sviluppo insieme a Firebase ML, devi creare e utilizzare una chiave API solo per il debug. Le istruzioni per creare questo tipo di chiave sono disponibili nella documentazione di Firebase ML.

Domande frequenti e risoluzione dei problemi

Domande frequenti

Risoluzione dei problemi