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 di quanto chiavi API sono in genere utilizzati, chiavi API per servizi Firebase non sono utilizzati per controllare l'accesso alle risorse di back-end; che 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.

Anche se le chiavi API per servizi Firebase sono sicuri di includere nel codice, ci sono alcuni casi specifici in cui si dovrebbe far rispettare i limiti per la vostra chiave API; ad esempio, se utilizzi Firebase ML, Firebase Authentication 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 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 chiavi API per il tuo progetto quando esegui una delle seguenti operazioni:

  • Creare un progetto Firebase> Browser key auto-creato
  • Creare un Firebase Apple App> iOS key auto-creato
  • Creare un Firebase Android App> Android key auto-creato

È inoltre possibile creare le proprie chiavi API in Google Cloud Console , ad esempio per lo sviluppo e il debugging . Scopri di più su quando potrebbe essere consigliato più avanti in questa pagina.

Trovare le tue chiavi API

È possibile visualizzare e gestire le chiavi API tutto il progetto nel API e servizi> Credenziali pannello nel Cloud Console di Google.

È inoltre possibile trovare quale chiave API è compensata automaticamente a un'App Firebase nei seguenti luoghi. Per impostazione predefinita, tutti del progetto Firebase Apps per la stessa piattaforma (Apple vs Android vs Web) utilizzerà la stessa chiave API.

  • Firebase di Apple Apps - Trova automatico abbinato chiave di un'applicazione API nel file di configurazione Firebase, GoogleService-Info.plist , nel API_KEY campo.

  • Firebase applicazioni Android - Trova automatico abbinato chiave API di un'applicazione nel file di configurazione Firebase, google-services.json , nel current_key campo.

  • Firebase Web Apps - Trova automatico abbinato chiave API di un'applicazione nell'oggetto config Firebase, nel apiKey campo.

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

Ad esempio, puoi usare esplicitamente una chiave API passando il suo valore in una chiamata API REST come parametro di query. Questo esempio mostra come si potrebbe fare una richiesta al dinamico collegamenti collegamento shortener API :

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, incluse le variabili di ambiente.

Applicare restrizioni ai tasti API (consigliato)

Sebbene non sia necessario trattare come 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.

Limita la quota se utilizzi l'autenticazione basata su password

Se si utilizza l'autenticazione basata su password Firebase e qualcuno si impossessa della tua chiave API, non saranno in grado di accedere a qualsiasi banca dati del progetto Firebase o dati cloud storage finché questi dati sono protetti da Firebase Regole di sicurezza . Potrebbero, tuttavia, utilizzare la tua chiave API per accedere agli endpoint di autenticazione di Firebase ed effettuare richieste di autenticazione sul tuo progetto.

Per mitigare contro la possibilità che qualcuno possa abusare una chiave API per tentare un attacco di forza bruta, si può stringere la quota predefinita dei identitytoolkit.googleapis.com endpoint in modo da riflettere le normali aspettative di traffico della vostra applicazione. Tieni presente che se limiti questa quota e la tua app acquisisce improvvisamente utenti, potresti ricevere errori di accesso fino a quando non aumenti la quota. È possibile modificare le quote API del vostro 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 in genere non debbano 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 (nel senso 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 si utilizzano le API Vision Cloud Firebase ML su iOS, è necessario creare chiavi API separati che si usa solo per l'accesso alle API Vision Cloud.

Utilizzando, chiavi API separati ristrette per non Firebase-API, è possibile ruotare o sostituire i tasti quando necessario e aggiungere ulteriori restrizioni alle chiavi API senza interrompere il vostro utilizzo dei servizi Firebase.

Utilizzare i tasti ambiente specifico API (raccomandato)

Se configuri progetti Firebase diversi per ambienti diversi, come staging e produzione, è importante che ogni istanza dell'app interagisca con il progetto Firebase corrispondente. Ad esempio, l'istanza dell'app di staging non dovrebbe mai comunicare 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 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 la creazione di questo tipo di chiave si trovano nei documenti Firebase ML .

FAQ