Le destinazioni di deployment sono identificatori brevi (che definisci personalmente) per le risorse Firebase nel tuo progetto Firebase, ad esempio un sito Hosting con asset statici univoci o un gruppo di istanze di Realtime Database che condividono le stesse regole di sicurezza.
Le destinazioni di deployment sono utili quando hai più siti Hosting, più bucket Cloud Storage o più istanze di Realtime Database. Con le destinazioni di deployment, l'interfaccia a riga di comando di Firebase può eseguire il deployment delle impostazioni in una risorsa o in un gruppo di risorse Firebase specifico nel progetto, ad esempio:
- La configurazione di hosting per ciascuno dei tuoi siti Hosting.
- Asset statici dalla directory del progetto per ciascuno dei tuoi siti Hosting
- Regole di sicurezza condivise da più istanze di Realtime Database o più bucket Cloud Storage
Per configurare una destinazione del deployment:
- Applica un
TARGET_NAME
alla risorsa Firebase o al gruppo di risorse Firebase target. - Nel file
firebase.json
, fai riferimento alTARGET_NAME
associato quando configuri le impostazioni per ogni risorsa o gruppo di risorse.
Quando esegui comandi dell'interfaccia a riga di comando di Firebase (come
firebase deploy
), l'interfaccia a riga di comando di Firebase accoppia ogni TARGET_NAME
alle risorse Firebase associate. L'interfaccia a riga di comando comunica quindi
al tuo progetto Firebase le impostazioni per ogni risorsa.
Configura le destinazioni di deployment per le risorse Firebase
Utilizzando l'interfaccia a riga di comando di Firebase, applica un TARGET_NAME
(identificatore con nome breve creato da te) a una risorsa Firebase o a un gruppo di risorse Firebase.
Firebase supporta le destinazioni di deployment per:
- Siti di Firebase Hosting
- Bucket di archiviazione Cloud Storage per Firebase
- Istanze Firebase Realtime Database
Le impostazioni delle destinazioni di deployment sono archiviate nel file .firebaserc
nella directory del progetto, quindi devi configurare le destinazioni di deployment solo una volta per progetto.
Configura destinazioni di deployment per Hosting
Per creare una destinazione per il deployment e applicare TARGET_NAME
a un sito di Hosting, esegui questo comando dell'interfaccia a riga di comando:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Dove si trovano i parametri:
TYPE: il tipo di risorsa Firebase pertinente
- Per i siti di Firebase Hosting, utilizza
hosting
.
- Per i siti di Firebase Hosting, utilizza
TARGET_NAME: un nome univoco per il sito Hosting in cui stai eseguendo il deployment
RESOURCE_IDENTIFIER:
SITE_ID
per il sito di Hosting come elencato nel tuo progetto Firebase
Ad esempio, se hai creato due siti
(myapp-blog
e myapp-app
) nel progetto Firebase, puoi applicare un TARGET_NAME
univoco (rispettivamente blog
e app
) a ogni sito eseguendo i seguenti comandi:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Configura le destinazioni di deployment per Cloud Storage o Realtime Database
Per creare una destinazione per il deployment e applicare TARGET_NAME
a un set di risorse Cloud Storage o Realtime Database, esegui questo comando dell'interfaccia a riga di comando:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
Dove si trovano i parametri:
TYPE: il tipo di risorsa Firebase pertinente
- Per i bucket Cloud Storage, utilizza
storage
. - Per le istanze di Realtime Database, utilizza
database
.
- Per i bucket Cloud Storage, utilizza
TARGET_NAME: un nome univoco della risorsa o del gruppo di risorse che condividono le regole di sicurezza
RESOURCE_IDENTIFIER: gli identificatori delle risorse elencate nel progetto Firebase (ad esempio nomi dei bucket di archiviazione o ID istanza di database) che condividono tutte le stesse regole di sicurezza
Ad esempio, puoi applicare TARGET_NAME
di main
a un gruppo di tre bucket Cloud Storage regionali (che condividono tutti le stesse regole di sicurezza) eseguendo questo comando:
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
Tieni presente che myproject.appspot.com
è l'identificatore del bucket predefinito, mentre myproject-eu
e myproject-ja
sono due bucket aggiuntivi creati nel progetto Firebase.
Configura il file firebase.json per utilizzare le destinazioni di deployment
Dopo aver impostato le destinazioni di deployment per le risorse Firebase, fai riferimento a ogni TARGET_NAME
applicata nel file di configurazione di firebase.json
:
- Crea un array di oggetti di configurazione per ciascuna risorsa Firebase
TYPE
(hosting
,storage
odatabase
). - Negli array, specifica
target
(utilizzandoTARGET_NAME
) e definisci le impostazioni per la risorsa o il gruppo di risorse Firebase associato.
Proseguendo con gli esempi precedenti, in cui il progetto Firebase ha due siti di hosting e tre bucket Cloud Storage (che condividono le stesse regole di sicurezza), il file firebase.json
avrà il seguente aspetto:
{ "hosting": [ { "target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog" "public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog" // ... }, { "target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app" "public": "app/dist", // contents of this folder are deployed to the site "myapp-app" // ... "rewrites": [...] // You can define specific Hosting configurations for each site } ] } { "storage": [ { "target": "main", // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets "rules": "storage.main.rules" // the file that contains the shared security rules } ] }
Se disponi di più configurazioni per le risorse, puoi creare più destinazioni di deployment e specificarne una nel file firebase.json
. Il deployment di tutte le risorse associate verrà eseguito insieme quando esegui firebase deploy
.
Gestisci destinazioni del deployment
Le impostazioni delle destinazioni di deployment sono archiviate nel file .firebaserc
nella directory del progetto. Puoi gestire le destinazioni di deployment del progetto eseguendo uno dei comandi seguenti dalla directory radice della directory del progetto.
Comando | Descrizione |
---|---|
firebase target
|
Elenca le destinazioni di deployment per la directory del progetto attuale |
firebase target:remove \
|
Rimuove una risorsa dalla destinazione a cui è stata assegnata |
firebase target:clear \
|
Rimuove tutte le risorse o il sito Hosting dalla destinazione specificata |
I comandi target:remove
e target:clear
aggiornano automaticamente le impostazioni della destinazione
del deployment nel file .firebaserc
nella directory del progetto.
Esegui i test in locale prima di eseguire il deployment
Esegui uno dei comandi seguenti dalla directory principale della directory del progetto.
Comando | Descrizione |
---|---|
firebase emulators:start
|
Emula tutte le risorse configurate nella directory del progetto |
firebase emulators:start \ |
Emula solo i contenuti e la configurazione di Hosting del sito Hosting specificato. |
firebase emulators:start \
|
Emula solo il file delle regole per la destinazione Cloud Storage specificata |
firebase emulators:start \
|
Emula solo il file delle regole per la destinazione specificata di Realtime Database |
Scopri di più sulla configurazione e l'utilizzo di Firebase Local Emulator Suite.
Esegui il deployment di risorse Firebase specifiche
Esegui uno dei comandi seguenti dalla directory principale della directory del progetto.
Comando | Descrizione |
---|---|
firebase deploy
|
Crea una release di tutte le risorse di cui è possibile eseguire il deployment nella directory del progetto |
firebase deploy \
|
Esegue il deployment solo dei contenuti e della configurazione di Hosting del sito Hosting specificato sul canale live per il sito |
firebase hosting:channel:deploy CHANNEL_ID \ |
Esegue il deployment solo dei contenuti e della configurazione di Hosting del sito Hosting specificato su un canale di anteprima per il sito |
firebase deploy \
|
Esegue il deployment solo del file delle regole per la destinazione Cloud Storage specificata |
firebase deploy \
|
Esegue il deployment solo del file delle regole per la destinazione di Realtime Database specificata |