Le destinazioni di distribuzione sono identificatori di nomi brevi (che definisci tu stesso) per le risorse Firebase nel tuo progetto Firebase, come un sito di hosting con risorse statiche univoche o un gruppo di istanze di Realtime Database che condividono le stesse regole di sicurezza.
Le destinazioni di distribuzione sono utili quando disponi di più siti di hosting , più bucket di archiviazione cloud o più istanze di Realtime Database . Con le destinazioni di distribuzione, la CLI di Firebase può distribuire le impostazioni su una risorsa Firebase specifica o su un gruppo di risorse nel tuo progetto, ad esempio:
- La configurazione di hosting per ciascuno dei tuoi siti di hosting
- Risorse statiche dalla directory del tuo progetto per ciascuno dei tuoi siti di hosting
- Regole di sicurezza condivise da più istanze di Realtime Database o più bucket Cloud Storage
Per impostare una destinazione di distribuzione:
- Applica un
TARGET_NAME
alla risorsa Firebase o al gruppo di risorse Firebase di destinazione. - Nel file
firebase.json
, fai riferimento alTARGET_NAME
associato quando configuri le impostazioni per ciascuna risorsa o gruppo di risorse.
Quando esegui i comandi della CLI Firebase (come firebase deploy
), la CLI Firebase accoppia ciascun TARGET_NAME
con le risorse Firebase associate. La CLI comunica quindi al tuo progetto Firebase le impostazioni per ciascuna risorsa.
Configura destinazioni di distribuzione per le tue risorse Firebase
Utilizzando la CLI Firebase, applica un TARGET_NAME
(identificatore del nome breve definito da te) a una risorsa Firebase o a un gruppo di risorse Firebase. Firebase supporta le destinazioni di distribuzione per:
- Siti di hosting Firebase
- Bucket di archiviazione Cloud Storage per Firebase
- Istanze del database Firebase Realtime
Le impostazioni per le destinazioni di distribuzione sono archiviate nel file .firebaserc
nella directory del progetto, quindi devi impostare le destinazioni di distribuzione solo una volta per progetto.
Configura le destinazioni di distribuzione per l'hosting
Per creare una destinazione di distribuzione e applicare TARGET_NAME
a un sito di hosting, esegui il seguente comando CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Dove i parametri sono:
TYPE : il tipo di risorsa Firebase pertinente
- Per i siti di hosting Firebase, utilizzare
hosting
.
- Per i siti di hosting Firebase, utilizzare
TARGET_NAME : un nome univoco per il sito di hosting su cui stai distribuendo
RESOURCE_IDENTIFIER : il
SITE_ID
per il sito di hosting elencato nel tuo progetto Firebase
Ad esempio, se hai creato due siti ( myapp-blog
e myapp-app
) nel tuo progetto Firebase, potresti applicare un TARGET_NAME
univoco (rispettivamente blog
e app
) a ciascun sito eseguendo i seguenti comandi:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Configura destinazioni di distribuzione per Cloud Storage o Realtime Database
Per creare una destinazione di distribuzione e applicare TARGET_NAME
a un set 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 di Realtime Database, utilizzare
database
.
- Per i bucket Cloud Storage, utilizza
TARGET_NAME : un nome univoco per la risorsa o il gruppo di risorse che condividono regole di sicurezza
RESOURCE_IDENTIFIER : gli identificatori per le risorse elencate nel tuo progetto Firebase (come i nomi dei bucket di archiviazione o gli ID delle istanze del database) che condividono tutti le stesse regole di sicurezza
Ad esempio, potresti applicare TARGET_NAME
di main
a un gruppo di tre bucket Cloud Storage regionali (che condividono tutti le stesse regole di sicurezza) eseguendo il comando seguente:
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
Tieni presente che myproject.appspot.com
è l'identificatore per il bucket predefinito, mentre myproject-eu
e myproject-ja
sono due bucket aggiuntivi creati nel progetto Firebase.
Configura il tuo file firebase.json per utilizzare le destinazioni di distribuzione
Dopo aver impostato le destinazioni di distribuzione per le tue risorse Firebase, fai riferimento a ciascun TARGET_NAME
applicato nel file di configurazione firebase.json
:
- Crea una serie di oggetti di configurazione per ciascun
TYPE
di risorsa Firebase (hosting
,storage
odatabase
). - Negli array, specifica la
target
(utilizzandoTARGET_NAME
) e definisci le impostazioni per la risorsa Firebase o il gruppo di risorse associato.
Continuando gli esempi di cui sopra, in cui il tuo progetto Firebase ha due siti di hosting e tre bucket di archiviazione cloud (che condividono le stesse regole di sicurezza), il tuo file firebase.json
sarebbe simile a questo:
{ "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 tue risorse, puoi creare più destinazioni di distribuzione e specificarle ciascuna nel file firebase.json
. Tutte le risorse associate verranno distribuite insieme quando esegui firebase deploy
.
Gestire gli obiettivi di distribuzione
Le impostazioni per le destinazioni di distribuzione sono archiviate nel file .firebaserc
nella directory del progetto. Puoi gestire le destinazioni di distribuzione del tuo progetto eseguendo uno dei seguenti comandi dalla radice della directory del progetto.
Comando | Descrizione |
---|---|
firebase target | Elenca le destinazioni di distribuzione per la directory del progetto corrente |
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 di distribuzione nel file .firebaserc
nella directory del progetto.
Testare localmente prima della distribuzione
Esegui uno dei seguenti comandi dalla radice della directory del progetto.
Comando | Descrizione |
---|---|
firebase emulators:start | Emula tutte le risorse configurate nella directory del progetto |
firebase emulators:start \ | Emula solo il contenuto e la configurazione dell'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 Realtime Database specificata |
Scopri di più sulla configurazione e sull'utilizzo di Firebase Local Emulator Suite .
Distribuisci risorse Firebase specifiche
Esegui uno dei seguenti comandi dalla radice della directory del progetto.
Comando | Descrizione |
---|---|
firebase deploy | Crea una versione di tutte le risorse distribuibili nella directory del progetto |
firebase deploy \ | Distribuisce solo il contenuto e la configurazione dell'hosting del sito di hosting specificato sul canale live del sito |
firebase hosting:channel:deploy CHANNEL_ID \ | Distribuisce solo il contenuto e la configurazione dell'hosting del sito di hosting specificato su un canale di anteprima per il sito |
firebase deploy \ | Distribuisce solo il file delle regole per la destinazione Cloud Storage specificata |
firebase deploy \ | Distribuisce solo il file delle regole per la destinazione Realtime Database specificata |