Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Condividi le risorse del progetto su più siti

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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.

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 il 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 \
CHANNEL_ID
Distribuisce il contenuto di hosting e la configurazione del sito di hosting predefinito in un URL di anteprima
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
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