Gestisci live e Visualizzare l'anteprima di canali, uscite e versioni per il tuo sito

Firebase Hosting fornisce strumenti sia tramite la console Firebase sia tramite l'interfaccia a riga di comando Firebase per gestire i canali, le release e le versioni del sito Hosting.

Panoramica dell'infrastruttura Hosting

Comprendere l'infrastruttura Hosting ti aiuta a capire le opzioni di gestione descritte in questa pagina.

Ogni progetto Firebase ha un Hosting sito Hosting predefinito con accesso a tutte le risorse del progetto (database, autenticazione, funzioni e così via). Un sito contiene uno o più canali, dove ogni canale è associato a un URL che pubblica contenuti specifici e a una configurazione Hosting.

Hosting

un&#39;immagine di <span class=Gerarchia di Firebase Hosting" />

Ogni Hosting sito ha un canale "live" che pubblica contenuti e una Hosting configurazione in (1) nei sottodomini forniti da Firebase del sito (SITE_ID.web.app e SITE_ID.firebaseapp.com) e (2) in tutti i domini personalizzati collegati. Puoi anche creare facoltativamente canali "in anteprima" che pubblicano i propri contenuti e la propria configurazione in "URL di anteprima" temporanei, condivisibili (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app).

I contenuti e la configurazione pubblicati da ogni canale sono inclusi in un oggetto versione con un identificatore univoco. Quando esegui il deployment sul tuo sito, Firebase crea un oggetto release che rimanda a una versione specifica. Una release contiene metadati sul deployment, ad esempio chi e quando ha eseguito il deployment.

Nella dashboard Hosting del tuo progetto Firebase, puoi visualizzare la cronologia completa delle release del tuo canale live in una tabella Cronologia delle release. Se hai più siti Hosting, fai clic su Visualizza per il sito desiderato per visualizzarne la cronologia delle release. Se hai canali in anteprima, vengono visualizzati anche nella dashboard Hosting.

Gestire le impostazioni di un canale

Per ogni canale del tuo sito, puoi controllare le relative impostazioni. Alcune impostazioni, come la scadenza del canale, sono applicabili solo ai canali in anteprima.

Limitare il numero di release da conservare

Ogni volta che esegui il deployment su un canale (e crei una release), Hosting conserva la versione associata alla release precedente nello spazio di archiviazione Hosting del tuo progetto. Puoi impostare il numero di release da conservare per ogni canale del tuo progetto, sia per i canali live sia per quelli in anteprima.

  • Perché Hosting conserva le release precedenti?
    Per il tuo canale live, la conservazione delle release precedenti ti consente di eseguire il rollback a una versione precedente del tuo sito, se necessario. Per i canali in anteprima, il rollback non è ancora disponibile.

  • Perché limitare il numero di release da conservare?
    Questa funzionalità può aiutarti a controllare il livello di utilizzo dello spazio di archiviazione del tuo progettoHosting, poiché i contenuti delle release precedenti vengono conservati in questo spazio di archiviazione. Puoi monitorare lo spazio di archiviazione di Hosting dalla scheda _Spazio di archiviazione_ nella console.Hosting

  • Che cosa succede quando limiti le release da conservare?
    Quando imposti un limite per le release da conservare, i contenuti di tutte le release che superano il limite impostato vengono programmati per l'eliminazione, a partire dalle release meno recenti.

Ecco come impostare il limite di spazio di archiviazione delle release per un canale:

  1. Nella console Firebase, vai a Hosting e serverless > Hosting per accedere alla finestra di dialogo delle impostazioni dello spazio di archiviazione delle release:

    • Per il tuo canale live
      Nella tabella Cronologia delle release del tuo sito, fai clic , quindi seleziona Impostazioni dello spazio di archiviazione delle release.

    • Per qualsiasi canale in anteprima
      Nella riga del canale in anteprima, fai clic , quindi seleziona Impostazioni del canale.

  2. Inserisci il numero di release che vuoi conservare e poi fai clic su Salva.

Impostare la scadenza di un canale in anteprima

Per impostazione predefinita, un canale in anteprima scade 7 giorni dopo la data di creazione, ma il canale live del tuo sito non scadrà mai.

Quando un canale in anteprima scade, il canale, le relative release e le versioni associate vengono programmati per l'eliminazione entro 24 ore. Anche l'URL di anteprima associato viene disattivato. Un'eccezione all'eliminazione della versione si verifica se una versione è associata a un'altra release (ad esempio, se cloni una versione da un canale a un altro all'interno dello stesso sito).

Hosting supporta due modi diversi per controllare la scadenza di un canale:

  • Firebase console
    Nella riga del canale in anteprima, fai clic , quindi seleziona Impostazioni del canale. Inserisci la data e l'ora di scadenza.

  • Firebase CLI
    Quando esegui il deployment sul canale in anteprima, passa il --expires DURATION flag, ad esempio:

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    La scadenza può essere fino a 30 giorni dalla data di deployment. Utilizza h per le ore, d per i giorni e w per le settimane (ad esempio, 12h, 7d, 2w, rispettivamente).

Clonare una versione da un canale a un altro

Puoi clonare una versione di cui è stato eseguito il deployment da un canale a un altro. Puoi clonare tra canali live o in anteprima, tra siti Hosting o persino tra progetti Firebase.

Il comando clone esegue anche il deployment sul canale "di destinazione" in modo che i contenuti e la configurazione di Hosting clonati vengano pubblicati automaticamente all'URL associato del canale "di destinazione".Hosting

Questa funzionalità è utile per il monitoraggio delle versioni o se vuoi assicurarti di eseguire il deployment dei contenuti esatti che hai visualizzato e/o testato su un altro canale. Ecco alcuni esempi:

  • Clonare da un canale in anteprima "QA" al canale live del tuo sito (pubblicazione live!)

  • Clonare dal canale live del tuo sito a un canale in anteprima "debug" (come prima di un rollback)

  • Clonare da un canale nel progetto Firebase "staging" a un canale in anteprima nel progetto Firebase "prod"

Per clonare una versione, esegui il comando seguente da qualsiasi directory:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

Sostituisci ogni segnaposto con quanto segue:

  • SOURCE_SITE_ID e TARGET_SITE_ID: sono gli ID dei siti Hosting che contengono i canali.

    • Per il sito Hosting predefinito, utilizza l'ID progetto Firebase.
    • Puoi specificare siti Hosting che si trovano nello stesso progetto Firebase o anche in progetti Firebase diversi.
  • SOURCE_CHANNEL_ID e TARGET_CHANNEL_ID: sono gli identificatori per i canali.

    • Per un canale live, utilizza live come ID canale.
    • Se il canale "di destinazione" specificato non esiste ancora, questo comando crea il canale prima di eseguirne il deployment.

Eseguire il rollback a una versione precedente del sito

Puoi eseguire il rollback per pubblicare una versione precedente del canale live del tuo sito. Questa azione è utile se la release attuale presenta un problema e vuoi eseguire il rollback per pubblicare una versione funzionante nota del tuo sito. Oppure, il tuo sito ha pubblicato contenuti temporanei per una festività o un evento speciale, ma ora vuoi eseguire il rollback per pubblicare i contenuti "normali".

Eseguendo il rollback, crei una nuova release che pubblica la stessa versione dei contenuti di una release precedente. Nella tabella Cronologia delle release, entrambe le release mostreranno lo stesso identificatore di versione.

Ecco come eseguire il rollback:

  1. Nella console Firebase, vai a Hosting e serverless > Hosting.

  2. Nella tabella Cronologia delle release del tuo sito, passa il mouse sopra la voce della release precedente a cui vuoi eseguire il rollback.

  3. Fai clic su e poi seleziona Esegui il rollback.

Eliminare manualmente una release

Potresti dover eliminare manualmente una release dal tuo canale live per liberare spazio di archiviazione Hosting per il tuo progetto. Puoi eliminare solo le release precedenti, non la release attualmente pubblicata sul tuo sito live.

Quando elimini una release, in realtà elimini i relativi contenuti, che vengono programmati per l'eliminazione entro 24 ore. L'oggetto release stesso viene mantenuto in modo che tu possa comunque visualizzarne i metadati (chi e quando ha eseguito il deployment).

Ecco come eliminare una release:

  1. Nella console Firebase, vai a Hosting e serverless > Hosting.

  2. Nella tabella Cronologia delle release del tuo sito, passa il mouse sopra la voce della release precedente che vuoi eliminare.

  3. Fai clic su e poi seleziona Elimina.

Eliminare manualmente i file

In Firebase Hosting, il modo principale per eliminare i file selezionati da un sito di cui è stato eseguito il deployment è eliminare i file localmente e poi rieseguire il deployment.

Eliminare manualmente un canale in anteprima

Puoi visualizzare l'anteprima dei tuoi canali facendo clic sul canale di cui vuoi visualizzare l'anteprima. Da questa visualizzazione, puoi vedere, eliminare e ripristinare i deployment e le release più recenti collegati al canale specifico. Puoi eliminare un canale in anteprima, ma non puoi eliminare il canale live del tuo sito.

Quando elimini un canale in anteprima, il canale, le relative release e le versioni associate vengono programmati per l'eliminazione entro 24 ore. Anche l'URL di anteprima associato viene disattivato. Un'eccezione all'eliminazione della versione si verifica se una versione è associata a un'altra release (ad esempio, se cloni una versione da un canale a un altro all'interno dello stesso sito).

Hosting supporta due modi diversi per eliminare un canale in anteprima:

  • Firebase console
    Nella riga del canale in anteprima, fai clic su , quindi seleziona Elimina canale. Conferma l'eliminazione.

  • Firebase CLI
    Esegui il comando seguente da qualsiasi directory:

    firebase hosting:channel:delete CHANNEL_ID

Comandi dell'interfaccia a riga di comando per i canali in anteprima e la clonazione

Comandi per i canali in anteprima

Tutti i comandi per i canali in anteprima supportano i target di deployment se hai più siti Hosting.

Comando Descrizione
firebase hosting:channel:create CHANNEL_ID

Crea un nuovo canale in anteprima nel sito predefinito Hosting utilizzando lo CHANNEL_ID specificato

Questo comando non esegue il deployment sul canale.

firebase hosting:channel:delete CHANNEL_ID

Elimina il canale in anteprima specificato

Non puoi eliminare il canale live di un sito.

firebase hosting:channel:deploy CHANNEL_ID

Esegue il deployment dei contenuti e della configurazione Hosting sul canale in anteprima specificato

Se il canale in anteprima non esiste ancora, questo comando crea il canale nel sito predefinito Hosting prima di eseguirne il deployment.

firebase hosting:channel:list Elenca tutti i canali (incluso il canale "live") nel predefinito Hosting sito
firebase hosting:channel:open CHANNEL_ID Apre un browser all'URL del canale specificato o restituisce l'URL se non è possibile aprirlo in un browser

Comandi per la clonazione delle versioni

Comando Descrizione
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona la versione di cui è stato eseguito il deployment più di recente sul canale "di origine" specificato nel canale "di destinazione" specificato

Questo comando esegue anche il deployment sul canale "di destinazione" specificato. Se il canale "di destinazione" non esiste ancora, questo comando crea un nuovo canale in anteprima nel sito "di destinazione" Hosting prima di eseguirne il deployment.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona la versione specificata nel canale "di destinazione" specificato

Questo comando esegue anche il deployment sul canale "di destinazione" specificato. Se il canale "di destinazione" non esiste ancora, questo comando crea un nuovo canale in anteprima nel sito "di destinazione" Hosting prima di eseguirne il deployment.

Puoi trovare il VERSION_ID nella Hosting dashboard della Firebase console.