Puoi configurare uno o più siti Firebase Hosting in un singolo progetto Firebase. Poiché i siti si trovano tutti nello stesso progetto Firebase, possono accedere alle altre risorse Firebase del progetto.
- Ogni sito ha una 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 all'interno dello stesso progetto Firebase, puoi condividere più facilmente le risorse Firebase tra siti e app correlati. Ad esempio, se configuri il blog, il pannello amministratore e l'app pubblica come singoli siti nello stesso progetto Firebase, possono condividere lo stesso database utenti Firebase Authentication, pur avendo domini o contenuti unici.
Passaggio 1: aggiorna la versione della CLI Firebase
Accedi alle funzionalità più recenti di Firebase Hosting eseguendo l'aggiornamento all'ultima versione della Firebase CLI.
Passaggio 2: aggiungi altri siti
Aggiungi altri siti a un progetto Firebase utilizzando uno dei seguenti metodi:
Utilizza il workflow nella pagina Hosting della console Firebase
Utilizza il comando CLI Firebase:
firebase hosting:sites:create SITE_ID
Utilizza l'API REST Hosting:
projects.sites.create
Per ciascuno di questi metodi, devi specificare un SITE_ID
utilizzato per creare
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 sito deve soddisfare i seguenti
requisiti:
- Deve essere un'etichetta del nome host valida, ovvero non può contenere
.
,_
e così via. - Deve contenere massimo 30 caratteri
- Deve essere univoco a livello globale all'interno di Firebase
Per 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 workflow nella pagina Hosting della console Firebase
Utilizza il comando CLI 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 le destinazioni di deployment per i tuoi siti
Quando hai più siti ed esegui i comandi di deployment dell'interfaccia a riga di comando Firebase, l'interfaccia a riga di comando deve 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 tuo
file di configurazione firebase.json
e nei tuoi comandi CLI Firebase per
test o deployment sui tuoi siti.
Per creare una destinazione 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 si trovano i parametri:
TARGET_NAME: un nome univoco (che hai definito tu) per il sito Hosting di cui stai eseguendo il deployment
RESOURCE_IDENTIFIER, ovvero l'
SITE_ID
per il sito Hosting come indicato 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 le destinazioni di deployment sono archiviate nel file .firebaserc
nella directory del progetto, quindi devi configurare le destinazioni di deployment una sola volta per progetto.
Passaggio 4: definisci la configurazione di hosting per ogni sito
Utilizza il TARGET_NAME
applicato di 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 di 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 di array:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Passaggio 5: esegui test in locale, visualizza l'anteprima delle modifiche e implementale sui tuoi siti
Esegui uno dei seguenti comandi dalla radice della directory del progetto locale.
Comando | Descrizione |
---|---|
firebase emulators:start --only hosting |
Emula i contenuti e la configurazione di Hosting del sito predefinito Hosting in un URL ospitato localmente |
firebase emulators:start --only hosting:TARGET_NAME |
Emula i contenuti e la configurazione del sito Hosting specificato all'URL ospitato localmente Hosting |
firebase hosting:channel:deploy \ |
Esegue il deployment dei contenuti e della configurazione di Hosting del sito predefinito Hosting a un URL di anteprima |
firebase hosting:channel:deploy \ |
Esegue il deployment dei contenuti e della configurazione del sito Hosting specificato all'indirizzo di un URL di anteprimaHosting |
firebase deploy --only hosting |
Esegue il deployment dei contenuti e della configurazione di Hosting sul canale live
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 live 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 predefinito Hosting a un URL ospitato localmente |
(non consigliato; utilizza emulators:start )firebase serve --only hosting:TARGET_NAME
|
Mostra i contenuti e la configurazione Hosting del sito Hosting specificato in un URL ospitato localmente |