Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Condividi le risorse del progetto su più siti

Puoi configurare uno o più siti Firebase Hosting 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.

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, 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.

Fase 1: Aggiornare la versione CLI Firebase

Accedere alla più recente Firebase Hosting caratteristiche per l'aggiornamento alla versione più recente del Firebase CLI .

Fase 2: Aggiungi siti aggiuntivi

Aggiungi altri siti a un progetto Firebase utilizzando uno dei seguenti metodi:

  • Utilizzare il flusso di lavoro nella pagina di hosting della console Firebase

  • Utilizzare il comando Firebase CLI: firebase hosting:sites:create SITE_ID

  • Utilizzare l'hosting API REST: projects.sites.create

Per ciascuno di questi metodi, è necessario specificare un SITE_ID che viene utilizzato per costruire i sottodomini di default Firebase-provisioning per il sito:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

Poiché il SITE_ID viene utilizzato per questi URL, l'ID del sito ha i seguenti requisiti:

  • Deve essere un'etichetta nome host valido, il che significa che non può contenere . , _ , Etc.
  • Deve essere di 30 caratteri o meno
  • Deve essere univoco a livello globale all'interno di Firebase

Per ogni sito, è anche possibile opzionalmente aggiungere domini personalizzati per servire lo stesso contenuto e la configurazione a più URL.

Elimina un sito secondario

Elimina i siti indesiderati da un progetto Firebase utilizzando uno dei seguenti metodi:

  • Utilizzare il flusso di lavoro nella pagina di hosting della console Firebase

  • Utilizzare il comando Firebase CLI: firebase hosting:sites:delete SITE_ID

  • Utilizzare l'hosting API REST: projects.sites.delete

Si noti che non è possibile eliminare il sito predefinito, che ha lo stesso SITE_ID come ID del progetto Firebase.

Fase 3: Impostare obiettivi di schieramento per i vostri siti

Quando disponi di più siti ed esegui i comandi di distribuzione della CLI Firebase, la CLI ha bisogno di un modo per comunicare quali impostazioni devono essere distribuite a ciascun sito. Con obiettivi di schieramento è possibile identificare in modo univoco un sito specifico con un TARGET_NAME nel firebase.json file di configurazione e nei tuoi comandi Firebase CLI per il test o la distribuzione ai vostri siti.

Per creare un target implementare e applicare un TARGET_NAME a un sito di hosting, eseguire 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 (che avete definito voi stessi) per il sito di hosting che si sta distribuendo a

  • RESOURCE_IDENTIFIER - la SITE_ID per il sito di hosting, come indicato nel progetto Firebase

Ad esempio, se hai creato due siti ( myapp-blog e myapp-app ) nel progetto Firebase, è possibile applicare un unico TARGET_NAME ( blog e app , rispettivamente) per ciascun sito eseguendo i seguenti comandi:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

Le impostazioni per obiettivi Deploy vengono memorizzati nel .firebaserc file nella directory del progetto, in modo che solo bisogno di impostare obiettivi distribuire uno volta per progetto.

Fase 4: Definire la configurazione di hosting per ogni sito

Utilizzare applicata di un sito TARGET_NAME quando si sta definendo la sua configurazione di hosting nel firebase.json file.

  • Se il firebase.json file definisce la configurazione per più siti, utilizzare 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 firebase.json file definisce la configurazione per un solo sito, non è necessario l'utilizzo di un formato di array:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

Fase 5: Prova a livello locale, anteprima cambia e distribuire ai vostri siti

Esegui uno dei seguenti comandi dalla radice della directory del tuo progetto locale.

Comando Descrizione
firebase emulators:start --only hosting Emula il contenuto Hosting e configurazione del sito di hosting di default in 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 \
CHANNEL_ID
Consente di distribuire il contenuto Hosting e configurazione del sito di hosting di default ad un URL di anteprima
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Distribuisce il contenuto dell'hosting e la configurazione del sito di hosting specificato in un URL di anteprima
firebase deploy --only hosting Consente di distribuire il contenuto Hosting e configurazione per il canale in diretta di tutti i siti di hosting configurato 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
(sconsigliato; uso emulators:start invece)
firebase serve --only hosting
Serve il contenuto Hosting e configurazione del sito di hosting di default in un URL ospitato localmente
(sconsigliato; uso emulators:start invece)
firebase serve --only hosting: TARGET_NAME
Serve il contenuto dell'hosting e la configurazione del sito di hosting specificato su un URL ospitato localmente