Puoi configurare uno o più siti Firebase Hosting in un singolo progetto Firebase. Poiché tutti i siti si trovano nello stesso progetto Firebase, 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.
Se configuri 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 di amministrazione e l'app pubblica come singoli siti nello stesso progetto Firebase, tutti possono condividere lo stesso Firebase Authentication database utente, pur avendo domini o contenuti univoci.
Passaggio 1: aggiorna la versione di Firebase CLI
Accedi alle funzionalità più recenti Firebase Hosting aggiornando all'ultima versione 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 Hosting e serverless > Hosting pagina della Firebase console
Utilizza il comando CLI Firebase:
firebase hosting:sites:create SITE_IDUtilizza l'Hosting API REST:
projects.sites.create
Per ognuno di questi metodi, devi specificare un SITE_ID utilizzato per creare i sottodomini predefiniti con provisioning Firebase per il sito:
SITE_ID.web.appSITE_ID.firebaseapp.com
Poiché SITE_ID viene utilizzato per questi URL, 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 al massimo 30 caratteri
- Deve essere univoco a livello globale in Firebase
Per ogni sito, puoi anche aggiungere facoltativamente domini personalizzati per pubblicare gli stessi contenuti e la stessa configurazione su 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 Hosting e serverless > Hosting pagina della Firebase console
Utilizza il comando Firebase CLI:
firebase hosting:sites:delete SITE_IDUtilizza l'API REST:
projects.sites.deleteHosting
Tieni presente che non puoi eliminare il sito predefinito, che ha lo stesso SITE_ID dell'ID progetto Firebase.
Passaggio 3: configura le destinazioni di deployment per i tuoi siti
Quando hai più siti ed esegui i comandi di deployment di Firebase CLI, l'
interfaccia a riga di comando deve essere in grado di comunicare quali impostazioni devono essere sottoposte a deployment su ogni
sito. Con destinazioni di deployment puoi identificare in modo univoco
un sito specifico con un TARGET_NAME nel file di configurazione
firebase.json
e nei comandi Firebase CLI per
testare o eseguire il 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 directory principale 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 Hostingsu cui stai eseguendo il deployment
RESOURCE_IDENTIFIER — il
SITE_IDper il sito Hosting come indicato nel 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 vengono 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 TARGET_NAME applicato di un sito quando definisci la configurazione di hosting
nel file
firebase.json.
Se il file
firebase.jsondefinisce 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.jsondefinisce 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 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 del sito Hosting predefinito Hosting su un URL ospitato in locale |
firebase emulators:start --only hosting:TARGET_NAME |
Emula i contenuti e la configurazione Hosting del sito specificato Hosting su un URL ospitato in locale |
firebase hosting:channel:deploy \ |
Esegue il deployment dei contenuti e della configurazione Hosting del sito predefinito Hosting su un URL di anteprima |
firebase hosting:channel:deploy \ |
Esegue il deployment dei Hosting contenuti e della configurazione del sito Hosting specificato su un URL di anteprima |
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 Hosting sul canale live del sito Hosting specificato |
| Comando | Descrizione |
|---|---|
(non consigliato; utilizza invece emulators:start)firebase serve --only hosting
|
Pubblica i contenuti e la configurazione di Hosting del sito predefinito Hosting su un URL ospitato in locale |
(non consigliato; utilizza invece emulators:start invece)firebase serve --only hosting:TARGET_NAME
|
Pubblica i contenuti e la configurazione Hosting del sito Hosting specificato su un URL ospitato in locale |