Condivisione delle risorse di progetto tra più siti

Puoi configurare uno o più siti Firebase Hosting in un singolo sito Firebase progetto. Poiché i siti sono tutti nello stesso progetto Firebase, possono tutti alle altre risorse Firebase del progetto.

Configurando più siti Hosting all'interno dello stesso progetto Firebase, possono condividere più facilmente le risorse Firebase tra siti e app correlati. Per Ad esempio, se imposti il blog, il pannello di amministrazione e l'app pubblica come di siti nello stesso progetto Firebase, possono condividere tutti Firebase Authentication, pur avendo i propri domini unici o contenuti.

Passaggio 1: aggiorna la versione dell'interfaccia a riga di comando di Firebase

Accedi alle funzionalità di Firebase Hosting più recenti effettuando l'aggiornamento all'ultima versione dell'interfaccia a riga di comando 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 dell'interfaccia a riga di comando Firebase: firebase hosting:sites:create SITE_ID

  • Utilizza l'API REST Hosting: projects.sites.create

Per ognuno di questi metodi, specificherai un SITE_ID che viene utilizzato per creare i sottodomini predefiniti di cui è stato eseguito il provisioning da Firebase per il sito:

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

Poiché per questi URL viene utilizzato SITE_ID, l'ID sito presenta quanto segue 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 facoltativamente aggiungere domini personalizzati per pubblicare gli stessi contenuti e configurazione a più URL.

Eliminare un sito secondario

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

  • Utilizza il flusso di lavoro nella Hosting pagina della console Firebase

  • Utilizza il comando dell'interfaccia a riga di comando 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 di l'ID progetto Firebase.

Passaggio 3: configura i target di deployment per i tuoi siti

Se hai più siti ed esegui i comandi di deployment dell'interfaccia a riga di comando di Firebase, L'interfaccia a riga di comando ha bisogno di un modo per comunicare le impostazioni di cui eseguire il deployment sito. Con le target di deployment puoi identificare in modo univoco un sito specifico con TARGET_NAME nel tuo firebase.json file di configurazione e nei tuoi Firebase comandi dell'interfaccia a riga di comando per i test o il deployment nei tuoi siti.

Per creare una destinazione di deployment e applicare TARGET_NAME a un sito Hosting, esegui il seguente comando dell'interfaccia a riga di comando dalla radice della directory 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 Hosting di destinazione del deployment

  • RESOURCE_IDENTIFIER: il SITE_ID del sito Hosting come elencate 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 del progetto, quindi devi configurare le destinazioni di deployment una sola volta progetto.

Passaggio 4: definisci la configurazione di hosting per ciascun sito

Utilizza l'elemento TARGET_NAME applicato di un sito quando ne definisci l'hosting configurazione nel tuo 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 file firebase.json definisce la configurazione per un solo sito, Non è necessario utilizzare un formato array:

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

Passaggio 5: esegui test locali, visualizza l'anteprima delle modifiche ed esegui il deployment sui tuoi siti

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

Comando Descrizione
firebase emulators:start --only hosting Emula i contenuti Hosting e la configurazione del Hosting sito predefinito in un sito ospitato localmente URL
firebase emulators:start --only hosting:TARGET_NAME Emula i contenuti Hosting e la configurazione dell'elemento specificato Hosting sito in un URL ospitato localmente
firebase hosting:channel:deploy \
CHANNEL_ID
Esegue il deployment dei contenuti e della configurazione Hosting del sito Hosting predefinito a un URL di anteprima
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Esegue il deployment dei contenuti e della configurazione di Hosting del sito Hosting specificato in un URL di anteprima
firebase deploy --only hosting Esegue il deployment dei contenuti e della configurazione di Hosting sul canale live di tutti Hosting siti 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; usa invece emulators:start)
firebase serve --only hosting
Pubblica i contenuti e la configurazione di Hosting del Hosting sito predefinito in un sito ospitato localmente URL
(non consigliato; usa invece emulators:start)
firebase serve --only hosting:TARGET_NAME
Pubblica i contenuti e la configurazione di Hosting dell'elemento specificato Hosting sito in un URL ospitato localmente