Puoi configurare uno o più siti di hosting Firebase in un singolo progetto Firebase. Poiché i siti sono tutti nello 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 imposti il tuo blog, pannello di amministrazione e app pubblica come singoli siti nello stesso progetto Firebase, tutti possono condividere lo stesso database utente di Firebase Authentication, pur avendo i propri domini o contenuti univoci.
Passaggio 1 : aggiorna la versione dell'interfaccia a riga di comando di Firebase
Accedi alle funzionalità più recenti di Firebase Hosting eseguendo l'aggiornamento all'ultima versione dell'interfaccia a riga di comando di 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 dell'hosting:
projects.sites.create
Per ciascuno di questi metodi, dovrai specificare un SITE_ID
che viene 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 ha i seguenti requisiti:
- Deve essere un'etichetta di nome host valida, nel senso che non può contenere
.
,_
, ecc. - Deve contenere al massimo 30 caratteri
- Deve essere univoco a livello globale all'interno di Firebase
A ogni 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 Firebase CLI:
firebase hosting:sites:delete SITE_ID
Utilizza l'API REST dell'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 gli obiettivi di distribuzione per i tuoi siti
Quando disponi di più siti ed esegui i comandi di distribuzione dell'interfaccia a riga di comando di Firebase, l'interfaccia a riga di comando ha bisogno di un modo per comunicare quali impostazioni devono essere distribuite a ciascun sito. Con le destinazioni di distribuzione puoi identificare in modo univoco un sito specifico con un TARGET_NAME
nel file di configurazione firebase.json
e nei comandi della CLI di Firebase per il test o la distribuzione nei tuoi siti.
Per creare una destinazione di distribuzione e applicare un TARGET_NAME
a un sito di hosting, esegui il seguente comando CLI dalla radice 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 implementando
RESOURCE_IDENTIFIER : il
SITE_ID
per il sito di 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 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 configurare 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 tuo file firebase.json
.
Se il tuo 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 : prova in locale, visualizza in anteprima le modifiche e distribuisci ai tuoi siti
Eseguire uno dei seguenti comandi dalla radice della directory del progetto locale.
Comando | Descrizione |
---|---|
firebase emulators:start --only hosting | Emula il contenuto e la configurazione di hosting del sito di hosting predefinito in un URL ospitato localmente |
firebase emulators:start --only hosting: TARGET_NAME | Emula il contenuto e la configurazione di hosting del sito di hosting specificato in un URL ospitato localmente |
firebase hosting:channel:deploy \ | Distribuisce il contenuto di hosting e la configurazione del sito di hosting predefinito in un URL di anteprima |
firebase hosting:channel:deploy \ | Distribuisce il contenuto di hosting e la configurazione 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 emulators:start invece)firebase serve --only hosting | Fornisce il contenuto di hosting e la configurazione del sito di hosting predefinito in un URL ospitato localmente |
(non consigliato; usa emulators:start invece)firebase serve --only hosting: TARGET_NAME | Fornisce il contenuto di hosting e la configurazione del sito di hosting specificato in un URL ospitato localmente |