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 durante l'interazione con Firebase e i servizi Google. Questa pagina descrive le informazioni di base sulle chiavi API e 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 chiavi API tipiche

A differenza del modo in cui vengono generalmente utilizzate le chiavi API, le chiavi API per i servizi Firebase non vengono utilizzate per controllare l'accesso alle risorse di back-end ; 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 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, ci sono alcuni casi specifici in cui dovresti imporre limiti per la tua chiave API; ad esempio, se utilizzi Firebase ML, l'autenticazione Firebase con il metodo di accesso tramite e-mail/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 ogni chiave API può essere associata solo a un singolo 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 Firebase per Android > Android key creata automaticamente

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

Trovare le tue chiavi API

Puoi visualizzare e gestire tutte le chiavi API del tuo progetto nel pannello API e servizi > Credenziali in Google Cloud Console.

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 vs Android vs Web) utilizzeranno la stessa chiave API.

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

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

  • App Web Firebase : trova la chiave API di corrispondenza automatica di un'app 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. In particolare, 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 in modo esplicito una chiave API passando il suo valore in una chiamata API REST come parametro di query. Questo esempio mostra come effettuare una richiesta all'API di accorciamento dei collegamenti di Dynamic Links :

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

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

Applicare restrizioni alle chiavi API (consigliato)

Sebbene non sia necessario trattare una chiave API per i servizi Firebase come un segreto, 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.

Riduci la quota se utilizzi l'autenticazione basata su password

Se utilizzi l'autenticazione Firebase basata su password e qualcuno si impossessa della tua chiave API, non sarà in grado di accedere al database del tuo progetto Firebase o ai dati di Cloud Storage finché questi dati sono 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 per 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 ottiene improvvisamente utenti, potresti ricevere errori di accesso fino a quando non aumenti la quota. Puoi modificare le quote API del tuo progetto in Google Cloud Console .

Utilizza chiavi API separate e limitate per tipi specifici di API

Sebbene le chiavi API utilizzate per i servizi Firebase non debbano generalmente essere trattate come segrete, dovresti prendere alcune precauzioni aggiuntive con le chiavi API utilizzate per concedere l'accesso alle API di 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 separate e limitate 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, devi creare chiavi API separate che utilizzi solo per accedere alle API Cloud Vision.

Utilizzando chiavi API separate e limitate 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.

Usa chiavi API specifiche per l'ambiente (consigliato)

Se configuri progetti Firebase diversi per ambienti diversi, come la gestione temporanea e la produzione, è importante che ogni istanza dell'app interagisca con il progetto Firebase corrispondente. Ad esempio, l'istanza dell'app di staging non dovrebbe mai parlare con il 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, impostarle come variabili di ambiente o includerle in un file di configurazione.

Tieni presente che se stai utilizzando 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 quel tipo di chiave si trovano nei documenti di Firebase ML .

Domande frequenti