Puoi configurare uno o più siti di hosting Firebase in un singolo progetto Firebase. Poiché i siti fanno tutti parte dello stesso progetto Firebase, tutti i siti 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 di hosting all'interno dello 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 singoli nello stesso progetto Firebase, tutti potranno condividere lo stesso database utenti di autenticazione Firebase, pur avendo i propri domini o contenuti univoci.
Passaggio 1 : aggiorna la versione della CLI di Firebase
Accedi alle funzionalità di hosting Firebase più recenti aggiornando alla versione più recente della CLI Firebase .
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 CLI di Firebase:
firebase hosting:sites:create SITE_ID
Utilizza l'API REST di hosting:
projects.sites.create
Per ciascuno di questi metodi, specificherai un SITE_ID
che verrà utilizzato per costruire i sottodomini predefiniti forniti da Firebase per il sito:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Poiché per questi URL viene utilizzato SITE_ID
, l'ID del sito presenta i seguenti requisiti:
- Deve essere un'etichetta del nome host valida, ovvero non può contenere file
.
,_
, eccetera. - Deve contenere 30 caratteri o meno
- Deve essere univoco a livello globale all'interno di Firebase
A ciascun sito puoi anche aggiungere facoltativamente domini personalizzati per offrire lo stesso contenuto e la stessa configurazione a più URL.
Elimina 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 CLI di Firebase:
firebase hosting:sites:delete SITE_ID
Utilizza l'API REST di hosting:
projects.sites.delete
Tieni presente che non puoi eliminare il sito predefinito, che ha lo stesso SITE_ID
dell'ID progetto Firebase.
Passaggio 3 : imposta le destinazioni di distribuzione per i tuoi siti
Quando disponi di più siti ed esegui i comandi di distribuzione della CLI Firebase, la CLI necessita di un modo per comunicare quali impostazioni devono essere distribuite su ciascun sito. Con le destinazioni di distribuzione puoi identificare in modo univoco un sito specifico con TARGET_NAME
nel file di configurazione firebase.json
e nei comandi della CLI Firebase per testare o distribuire sui tuoi siti.
Per creare una destinazione di distribuzione e applicare TARGET_NAME
a un sito di hosting, esegui il seguente comando CLI dalla root della directory del tuo progetto:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Dove i parametri sono:
TARGET_NAME : un nome univoco (che hai definito tu stesso) 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
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.
Passaggio 4 : definire la configurazione di hosting per ciascun sito
Utilizza TARGET_NAME
applicato a un sito quando ne 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 tuo file
firebase.json
definisce la configurazione per un solo sito, non è necessario utilizzare un formato array:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Passaggio 5 : testalo localmente, visualizza in anteprima le modifiche e distribuiscilo sui tuoi siti
Esegui uno dei seguenti comandi dalla radice della directory del progetto locale.
Comando | Descrizione |
---|---|
firebase emulators:start --only hosting | Emula il contenuto dell'hosting e la configurazione del sito di hosting predefinito su un URL ospitato localmente |
firebase emulators:start --only hosting: TARGET_NAME | Emula il contenuto dell'hosting e la configurazione del sito di hosting specificato su un URL ospitato localmente |
firebase hosting:channel:deploy \ | Distribuisce il contenuto dell'hosting e la configurazione del sito di hosting predefinito in un URL di anteprima |
firebase hosting:channel:deploy \ | Distribuisce il contenuto e la configurazione dell'hosting del sito di hosting specificato in un URL di anteprima |
firebase deploy --only hosting | Distribuisce il contenuto e la configurazione dell'hosting sul canale live di tutti i siti di hosting configurati in firebase.json |
firebase deploy --only hosting: TARGET_NAME | Distribuisce il contenuto e la configurazione dell'hosting sul canale live del sito di hosting specificato |
Comando | Descrizione |
---|---|
(non consigliato; usa invece emulators:start )firebase serve --only hosting | Fornisce il contenuto dell'hosting e la configurazione del sito di hosting predefinito su un URL ospitato localmente |
(non consigliato; usa invece emulators:start )firebase serve --only hosting: TARGET_NAME | Fornisce il contenuto dell'hosting e la configurazione del sito di hosting specificato su un URL ospitato localmente |