Puoi configurare uno o più siti Firebase Hosting in un singolo progetto Firebase. Poiché i siti si trovano tutti nello stesso progetto Firebase, tutti possono accedere alle altre risorse Firebase del progetto.
- Ogni sito ha la propria configurazione di hosting.
- Ogni sito ospita la propria raccolta di contenuti.
- Ogni sito può avere uno o più domini associati.
Configurando più siti Hosting nello stesso progetto Firebase, puoi condividere più facilmente le risorse Firebase tra siti e app correlati. Ad esempio, se configuri il tuo blog, il pannello di amministrazione e l'app pubblica come siti individuali nello stesso progetto Firebase, tutti possono condividere lo stesso database utenteFirebase Authentication, pur avendo i propri domini o contenuti unici.
Passaggio 1: aggiorna la versione dell'interfaccia a riga di comando Firebase
Accedi alle funzionalità Firebase Hosting più recenti eseguendo l'aggiornamento alla versione più recente del Firebase CLI.
Passaggio 2: aggiungi altri siti
Aggiungi altri siti a un progetto Firebase utilizzando uno dei seguenti metodi:
Utilizza il flusso di lavoro nella pagina Hosting della console Firebase
Utilizza il comando dell'interfaccia a riga di comando Firebase:
firebase hosting:sites:create SITE_ID
Utilizza l'API REST Hosting:
projects.sites.create
Per ciascuno di questi metodi, dovrai specificare un SITE_ID
che viene utilizzato per creare i sottodomini predefiniti di Firebase per il sito:
SITE_ID.web.app
SITE_ID.firebaseapp.com
Poiché per questi URL viene utilizzato SITE_ID
, l'ID sito deve soddisfare i seguenti requisiti:
- Deve essere un'etichetta del nome host valida, il che significa che non può contenere
.
,_
e così via. - Deve contenere al massimo 30 caratteri
- Deve essere univoco a livello globale in Firebase
A ogni sito puoi anche aggiungere domini personalizzati per pubblicare gli stessi contenuti e la stessa configurazione su più URL.
Eliminare un sito secondario
Elimina i siti indesiderati da un progetto Firebase utilizzando uno dei seguenti metodi:
Utilizza il flusso di lavoro nella pagina Hosting della console Firebase
Utilizza il comando dell'interfaccia a riga di comando Firebase:
firebase hosting:sites:delete SITE_ID
Utilizza l'API REST Hosting:
projects.sites.delete
Tieni presente che non puoi eliminare il sito predefinito, che ha lo stesso SITE_ID
del tuo ID progetto Firebase.
Passaggio 3: configura i target di deployment per i tuoi siti
Quando hai più siti ed esegui i comandi di deployment dell'Firebase CLI, l'interfaccia a riga di comando ha bisogno di un modo per comunicare quali impostazioni devono essere implementate in ogni sito. Con i target di deployment puoi identificare in modo univoco un sito specifico con un TARGET_NAME
nel firebase.json
file di configurazione e nei Firebase comandi CLI per il test o il deployment sui tuoi siti.
Per creare un target di deployment e applicare un TARGET_NAME
a un sito Hosting, esegui il seguente comando CLI dalla radice della directory del progetto:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
dove i parametri sono:
TARGET_NAME: un nome univoco (definito da te) per il sito Hosting di destinazione del 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 (blog
e app
, rispettivamente) a ogni sito eseguendo i seguenti comandi:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
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.
Passaggio 4: definisci la configurazione di hosting per ogni sito
Utilizza il TARGET_NAME
applicato a un sito quando definisci la configurazione di hosting nel file firebase.json
.
Se il file
firebase.json
definisce la configurazione per più siti, utilizza un formato array:{ "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 } ] }
Se il file
firebase.json
definisce la configurazione per un solo sito, non è necessario utilizzare un formato array:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Passaggio 5: esegui test locali, visualizza l'anteprima delle modifiche ed esegui il deployment sui tuoi siti
Esegui uno dei seguenti comandi dalla directory principale del progetto locale.
Comando | Descrizione |
---|---|
firebase emulators:start --only hosting |
Emula i contenuti e la configurazione di Hosting del sito Hosting predefinito su un URL ospitato localmente |
firebase emulators:start --only hosting:TARGET_NAME |
Emulazione dei contenuti e della configurazione del sito Hosting specificato su un URL ospitato localmenteHosting |
firebase hosting:channel:deploy \ |
Esegue il deployment dei contenuti e della configurazione di Hosting del sito Hosting predefinito in un URL di anteprima |
firebase hosting:channel:deploy \ |
Esegue il deployment dei contenuti e della configurazione di Hosting del sito Hosting specificato in un URL di anteprima |
firebase deploy --only hosting |
Esegue il deployment dei contenuti e della configurazione di Hosting sul canale dal vivo
di tutti i siti Hosting configurati in
firebase.json
|
firebase deploy --only hosting:TARGET_NAME |
Esegue il deployment dei contenuti e della configurazione di Hosting sul canale dal vivo del sito Hosting specificato |
Comando | Descrizione |
---|---|
(non consigliato; utilizza emulators:start )firebase serve --only hosting
|
Pubblica i contenuti e la configurazione di Hosting del sito Hosting predefinito su un URL ospitato localmente |
(non consigliato; utilizza emulators:start )firebase serve --only hosting:TARGET_NAME
|
Pubblica i contenuti e la configurazione del sito Hosting specificato su un URL ospitato localmenteHosting |