Scopri come utilizzare e gestire le chiavi API per Firebase

Una chiave API è una stringa univoca utilizzata per instradare le richieste al tuo progetto Firebase quando interagisci con Firebase e i servizi Google. Questa pagina descrive le 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 Firebase

Le chiavi API per Firebase sono diverse dalle tipiche chiavi API

A differenza di come vengono generalmente utilizzate le chiavi API, le chiavi API per i servizi Firebase non vengono utilizzate per controllare l'accesso alle risorse di backend ; ciò può essere fatto solo con Firebase Security Rules (per controllare quali utenti possono accedere alle risorse) e App Check (per controllare quali app possono accedere alle risorse).

Di solito, è necessario proteggere meticolosamente le chiavi API (ad esempio, utilizzando un servizio di protezione o impostando le chiavi come variabili di ambiente); tuttavia, è possibile includere le chiavi API per i servizi Firebase nel codice o nei file di configurazione archiviati.

Sebbene le chiavi API per i servizi Firebase siano sicure da includere nel codice, esistono alcuni casi specifici in cui dovresti applicare dei limiti per la tua chiave API; ad esempio, se utilizzi Firebase ML, l'autenticazione Firebase con il metodo di accesso tramite email/password o un'API Google Cloud fatturabile. Scopri di più su questi casi più avanti in questa pagina.

Creazione di chiavi API

Un progetto Firebase può avere molte chiavi API, ma ciascuna 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 creata automaticamente
  • Crea un'app Apple Firebase > iOS key creata automaticamente
  • Crea un'app Android Firebase > Android key creata automaticamente

Puoi anche creare le tue chiavi API nella console Google Cloud , ad esempio per lo sviluppo o il debug . Ulteriori informazioni 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 pannello API e servizi > Credenziali nella console Google Cloud.

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

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

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

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

Utilizzando 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 progetto per quota e fatturazione. Sono utili anche per accedere ai dati pubblici.

Ad esempio, puoi utilizzare esplicitamente una chiave API passandone il valore in una chiamata API REST come parametro di query. Questo esempio mostra come potresti effettuare una richiesta all'API di abbreviazione dei collegamenti Dynamic Links :

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Quando la tua app effettua una chiamata a un'API Firebase, cercherà automaticamente la chiave API del tuo progetto nel file/oggetto di configurazione Firebase. Puoi, tuttavia, impostare le chiavi API utilizzando un meccanismo diverso, incluse le variabili di ambiente.

Applica restrizioni alle chiavi API (consigliato)

Sebbene non sia necessario considerare segreta una chiave API per i servizi Firebase, ci sono alcuni casi specifici (vedi sotto) in cui potresti voler adottare misure aggiuntive per proteggere il tuo progetto dall'uso improprio della chiave API.

Ridurre la quota se si utilizza l'autenticazione basata su password

Se utilizzi l'autenticazione Firebase basata su password e qualcuno entra in possesso della tua chiave API, non sarà in grado di accedere a nessuno dei database del tuo progetto Firebase o ai dati di Cloud Storage purché tali dati siano protetti dalle regole di sicurezza Firebase . Potrebbero, tuttavia, utilizzare la tua chiave API per accedere agli endpoint di autenticazione di Firebase ed effettuare richieste di autenticazione contro il tuo progetto.

Per mitigare 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 per riflettere le normali aspettative di traffico della tua app. Tieni presente che se riduci questa quota e la tua app acquisisce improvvisamente utenti, potresti ricevere errori di accesso finché non aumenti la quota. Puoi modificare le quote API del tuo progetto nella console Google Cloud .

Utilizza chiavi API separate e limitate per tipi specifici di API

Sebbene le chiavi API utilizzate per i servizi Firebase in genere non debbano essere trattate come segrete, dovresti prendere alcune precauzioni aggiuntive con le chiavi API utilizzate per concedere l'accesso alle API Google Cloud che hai abilitato manualmente.

Se utilizzi un'API Google Cloud (su qualsiasi piattaforma) che non è abilitata automaticamente da Firebase (il che significa che l'hai abilitata tu stesso), dovresti prendere in considerazione la creazione di chiavi API limitate e separate da utilizzare con tali API. Ciò è particolarmente importante se l'API è per un servizio Google Cloud fatturabile.

Ad esempio, se utilizzi le API Cloud Vision di Firebase ML su iOS, dovresti creare chiavi API separate da utilizzare solo per accedere alle API Cloud Vision.

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

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 dell'app interagisca con il progetto Firebase corrispondente. Ad esempio, l'istanza dell'app di gestione temporanea non dovrebbe mai comunicare con il tuo progetto Firebase di produzione. Ciò significa anche che la tua app di staging deve utilizzare le chiavi API associate al tuo progetto Firebase di staging.

Per ridurre i problemi che promuovono le modifiche al codice dallo sviluppo allo staging fino alla produzione, invece di 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 di solo debug. Le istruzioni per creare questo tipo di chiave si trovano nella documentazione di Firebase ML .

Domande frequenti