欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

Condividi le risorse del progetto su più siti

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