I target di deployment sono identificatori di nomi brevi (che puoi definire tu) per le risorse Firebase nel tuo progetto Firebase, ad esempio un sito Hosting con asset statici unici o un gruppo di istanze Realtime Database che condividono le stesse regole di sicurezza.
I target di deployment sono utili quando hai più siti Hosting, più bucket Cloud Storage o più istanze Realtime Database. Con i target di deployment, l'interfaccia a riga di comando Firebase può eseguire il deployment delle impostazioni in una risorsa o in un gruppo di risorse Firebase specifiche 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 Realtime Database o da più bucket Cloud Storage
Per configurare un target di deployment:
- Applica un
TARGET_NAME
alla risorsa o al gruppo di risorse Firebase di destinazione. - Nel file
firebase.json
, fai riferimento al fileTARGET_NAME
associato quando configuri le impostazioni per ogni risorsa o gruppo di risorse.
Quando esegui comandi Firebase CLI (ad esempio
firebase deploy
), l'interfaccia a riga di comando Firebase abbina ogni TARGET_NAME
alle sue
risorse Firebase associate. L'interfaccia a riga di comando comunica quindi al progetto Firebase le impostazioni per ogni risorsa.
Configura i target di deployment per le risorse Firebase
Utilizzando l'interfaccia a riga di comando Firebase, applica un TARGET_NAME
(identificatore di nome breve che
puoi definire tu) a una risorsa Firebase o a un gruppo di risorse Firebase.
Firebase supporta i target di deployment per:
- Firebase Hosting siti
- Cloud Storage for Firebase bucket di archiviazione
- Istanze Firebase Realtime Database
Le impostazioni per i target di deployment sono memorizzate nel file .firebaserc
nella directory del progetto, quindi devi configurare i target di deployment una sola volta per progetto.
Configura i target di deployment per Hosting
Per creare una destinazione di deployment e applicare un TARGET_NAME
a un sito Hosting, esegui il seguente comando dell'interfaccia a riga di comando:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
dove i parametri sono:
TYPE: il tipo di risorsa Firebase pertinente
- Per i siti Firebase Hosting, utilizza
hosting
.
- Per i siti Firebase Hosting, utilizza
TARGET_NAME: un nome univoco per il sito Hosting in cui stai eseguendo il deployment
RESOURCE_IDENTIFIER: il
SITE_ID
per il sito Hosting come elencato nel tuo progetto Firebase
Ad esempio, se hai creato due siti (myapp-blog
e myapp-app
) nel tuo 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 i target di deployment per Cloud Storage o Realtime Database
Per creare una destinazione di deployment e applicare un TARGET_NAME
a un insieme di risorse Cloud Storage o Realtime Database, esegui il seguente comando CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
dove i parametri sono:
TYPE: il tipo di risorsa Firebase pertinente
- Per i bucket Cloud Storage, utilizza
storage
. - Per le istanze Realtime Database, utilizza
database
.
- Per i bucket Cloud Storage, utilizza
TARGET_NAME: un nome univoco per la risorsa o il gruppo di risorse che condividono le regole di sicurezza
RESOURCE_IDENTIFIER: gli identificatori delle risorse elencate nel tuo progetto Firebase (ad esempio i nomi dei bucket di archiviazione o gli ID istanza di database) che condividono tutte le stesse regole di sicurezza
Ad esempio, puoi applicare il TARGET_NAME
di main
a un gruppo di tre
bucket Cloud Storage regionali (che condividono tutti le stesse regole di sicurezza)
eseguendo il seguente comando:
firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja
Tieni presente che myproject.firebasestorage.app
è l'identificatore del bucket predefinito, mentre myproject-eu
e myproject-ja
sono due bucket aggiuntivi creati nel progetto Firebase.
Configurare il file firebase.json per utilizzare i target di deployment
Dopo aver configurato i target di deployment per le risorse Firebase, fai riferimento a ogni TARGET_NAME
applicato nel file di configurazione firebase.json
:
- Crea un array di oggetti di configurazione per ogni 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.
Continuando con gli esempi precedenti, se il tuo progetto Firebase ha due siti Hosting e tre bucket Cloud Storage (che condividono le stesse regole di sicurezza), il file firebase.json
sarà simile al seguente:
{ "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 hai più configurazioni per le tue risorse, puoi creare più target di deployment e specificarli nel file firebase.json
. Tutte le risorse associate verranno implementate insieme quando esegui firebase deploy
.
Gestire le destinazioni di deployment
Le impostazioni per i target di deployment sono archiviate nel file .firebaserc
nella directory del progetto. Puoi gestire i target di deployment del progetto eseguendo uno qualsiasi dei seguenti comandi dalla directory principale del progetto.
Comando | Descrizione |
---|---|
firebase target
|
Elenca i target di deployment per la directory del progetto corrente |
firebase target:remove \
|
Rimuove una risorsa dal target a cui è stata assegnata |
firebase target:clear \
|
Rimuove tutte le risorse o il sito Hosting dal target specificato |
I comandi target:remove
e target:clear
aggiornano automaticamente le impostazioni di destinazione del deployment nel file .firebaserc
nella directory del progetto.
Esegui test locali prima del deployment
Esegui uno dei seguenti comandi dalla directory principale del progetto.
Comando | Descrizione |
---|---|
firebase emulators:start
|
Emula tutte le risorse configurate nella directory del progetto |
firebase emulators:start \ |
Emulazione solo dei contenuti e della configurazione di Hosting del sito Hosting specificato |
firebase emulators:start \
|
Emulazione solo del file delle regole per il target Cloud Storage specificato |
firebase emulators:start \
|
Emulazione solo del file delle regole per il target Realtime Database specificato |
Scopri di più sulla configurazione e sull'utilizzo di Firebase Local Emulator Suite.
Esegui il deployment di risorse Firebase specifiche
Esegui uno dei seguenti comandi dalla directory principale 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 del sito Hosting specificato nel canale live del sitoHosting |
firebase hosting:channel:deploy CHANNEL_ID \ |
Esegue il deployment solo dei contenuti e della configurazione di Hosting del sito Hosting specificato in un canale di anteprima per il sito |
firebase deploy \
|
Esegue il deployment solo del file delle regole per il target Cloud Storage specificato |
firebase deploy \
|
Esegue il deployment solo del file delle regole per il target Realtime Database specificato |