Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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 unico 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, il pannello di amministrazione e l'app pubblica come singoli siti nello stesso progetto Firebase, tutti possono condividere lo stesso database utente di autenticazione Firebase, pur avendo i propri domini o contenuti univoci.

Passaggio 1 : aggiorna la versione della CLI di Firebase

Accedi alle funzionalità più recenti di Firebase Hosting aggiornando 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

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

  • Utilizza l'API REST di hosting: projects.sites.create

Per ciascuno di questi metodi, specificherai un SITE_ID che viene utilizzato per costruire i sottodomini predefiniti forniti da Firebase per il sito:

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

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

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

A ogni sito, puoi anche aggiungere facoltativamente domini personalizzati per servire 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

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

  • Utilizza l'API REST di hosting: projects.sites.delete

Tieni presente che non puoi eliminare il sito predefinito, che ha lo stesso SITE_ID del tuo ID progetto Firebase.

Passaggio 3 : imposta le destinazioni di distribuzione per i tuoi siti

Quando hai più siti ed esegui i comandi di distribuzione della CLI di Firebase, la CLI 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 dell'interfaccia a riga di comando 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, eseguire il seguente comando CLI dalla radice della directory del progetto:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Dove sono i parametri:

  • TARGET_NAME : un nome univoco (che hai definito tu stesso) per il sito di hosting a cui stai effettuando la distribuzione

  • RESOURCE_IDENTIFIER : il SITE_ID per il sito di hosting 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 ( blog e app , rispettivamente) univoco 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 è necessario configurare le destinazioni di distribuzione solo una volta per progetto.

Passaggio 4 : definire la configurazione dell'hosting per ciascun sito

Utilizza TARGET_NAME applicato a un sito quando definisci la sua configurazione di hosting nel tuo file firebase.json .

  • Se il tuo file firebase.json definisce la configurazione per più siti, usa 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 : verifica in locale, visualizza in anteprima le modifiche e distribuiscilo ai tuoi siti

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

Comando Descrizione
firebase emulators:start --only hosting Emula il contenuto di hosting e la configurazione del sito di hosting predefinito su un URL ospitato localmente
firebase emulators:start --only hosting: TARGET_NAME Emula il contenuto di hosting e la configurazione 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 di 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 al canale live del sito di hosting specificato
Comando Descrizione
(non consigliato; usa gli emulators:start invece)
firebase serve --only hosting
Offre il contenuto di hosting e la configurazione del sito di hosting predefinito su un URL ospitato localmente
(non consigliato; usa gli emulators:start invece)
firebase serve --only hosting: TARGET_NAME
Offre il contenuto di hosting e la configurazione del sito di hosting specificato in un URL ospitato localmente