Gerenciar canais ativos e de visualização, lançamentos e versões do site

O Firebase Hosting oferece ferramentas no Console do Firebase e na CLI do Firebase para gerenciar os canais e as versões do seu site do Hosting.

Visão geral da infraestrutura do Hosting

Entender a infraestrutura do Hosting ajuda a compreender as opções de gerenciamento descritas nesta página.

Cada projeto do Firebase tem um site padrão do Hosting com acesso a todos os recursos dele (bancos de dados, autenticação, funções etc.). Um site contém um ou mais canais. Cada um deles é associado a um URL que exibe conteúdo específico e uma configuração do Hosting.

uma imagem da hierarquia do Firebase Hosting

Todo site Hosting tem um canal "ativo" que exibe conteúdo e uma configuração do Hosting em (1) subdomínios provisionados pelo Firebase do site (SITE_ID.web.app e SITE_ID.firebaseapp.com) e em (2) todos os domínios personalizados conectados. Também é possível criar canais "de visualização" que exibem conteúdo e configuração próprios em "URLs de visualização" temporários e compartilháveis (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app).

O conteúdo e a configuração exibidos por cada canal são agrupados em um objeto de versão, que tem um identificador exclusivo. Quando você implanta no seu site, o Firebase cria um objeto release que aponta para uma versão específica. Um lançamento contém metadados sobre a implantação, como quem implantou e quando foi implantada.

No painel do Hosting do projeto do Firebase, é possível ver um histórico completo dos lançamentos do seu canal ativo em uma tabela de Histórico de lançamento. Se você tiver vários sites no Hosting, clique em Visualizar no site desejado para ver o histórico de lançamento. Se você tiver canais de visualização, eles também serão exibidos no painel do Hosting.

Gerenciar as configurações de um canal

Você pode controlar as configurações de cada canal do seu site. Algumas configurações, como a expiração do canal, são aplicáveis somente a canais de visualização.

Limitar o número de lançamentos a serem mantidos

Sempre que você implanta em um canal (e cria um lançamento), o Hosting mantém a versão associada ao lançamento anterior no armazenamento do Hosting do projeto. Você pode definir o número de lançamentos a serem mantidos para cada canal no seu projeto, sejam os canais ativos ou de visualização.

  • Por que o Hosting mantém os lançamentos anteriores?
    Para seu canal ativo, manter os lançamentos anteriores permite que você reverta para uma versão anterior do site, se necessário. Para seus canais de visualização, a reversão ainda não está disponível.

  • Por que limitar o número de lançamentos a serem mantidos?
    Esse recurso ajuda a controlar o nível de uso do armazenamento do Hosting do seu projeto, já que o conteúdo dos lançamentos anteriores é mantido nesse armazenamento. Monitore seu armazenamento do Hosting na guia Armazenamento no console.

  • O que acontece quando você limita os lançamentos que serão mantidos?
    Ao definir um limite para os lançamentos que serão mantidos, o conteúdo de todos os lançamentos acima do limite será programado para exclusão, começando com os mais antigos.

Veja como definir o limite de armazenamento de lançamento de um canal:

  1. No Console do Firebase, acesse a caixa de diálogo de configuração de armazenamento do lançamento:

    • Para seu canal ativo
      Na tabela Histórico de lançamento do seu site, clique em e selecione Configurações de armazenamento de versões.

    • Para qualquer canal de visualização
      Na linha do canal de visualização, clique em e selecione Configurações do canal.

  2. Digite o número de lançamentos que você quer manter e clique em Salvar.

Definir a expiração de um canal de visualização

Por padrão, um canal de visualização expira sete dias após a data de criação, mas o canal ativo do seu site nunca expirará.

Quando um canal de visualização expira, o canal e os lançamentos associados são programados para exclusão em 24 horas. O URL de visualização associado também é desativado. Uma exceção a essa exclusão de versão é quando uma versão está associada a outro lançamento. Isso acontece, por exemplo, se você clonar uma versão de um canal para outro no mesmo site.

O Hosting oferece duas maneiras diferentes de controlar a validade de um canal:

  • Console do Firebase
    Na linha do canal de visualização, clique em e selecione Configurações do canal. Insira a data e a hora de expiração.

  • CLI do Firebase
    Ao implantar no canal de visualização, transmita a sinalização --expires DURATION, por exemplo:

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

    A expiração pode ser de até 30 dias a partir da data de implantação. Use h para horas, d para dias e w para semanas (por exemplo, 12h, 7d, 2w, respectivamente).

Clonar uma versão de um canal para outro

Você pode clonar uma versão implantada de um canal em outro. Você pode clonar em canais ativos ou de visualização, em sites do Hosting ou até em projetos do Firebase.

O comando clone também implanta o canal "de destino" para que o conteúdo e a configuração clonados do Hosting sejam exibidos automaticamente no URL associado do canal de destino.

Esse recurso é útil para rastrear versões ou se você quer ter certeza de que está implantando o conteúdo exato que visualizou e/ou testou em outro canal. Veja alguns exemplos:

  • Clone de um canal de visualização "Controle de qualidade" para o canal ativo do seu site

  • Clone do canal ativo do site para um canal de visualização "de depuração" (como antes de uma reversão)

  • Clone de um canal no seu projeto de teste do Firebase em um canal de visualização no seu projeto "de produção" do Firebase

Para clonar uma versão, execute o seguinte comando em qualquer diretório:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

Substitua cada marcador de posição pelo seguinte:

  • SOURCE_SITE_ID e TARGET_SITE_ID: são os IDs dos sites do Hosting que contêm os canais.

    • Para seu site padrão do Hosting, use o ID do projeto do Firebase.
    • Você pode especificar sites do Hosting que estão no mesmo projeto do Firebase ou até mesmo em projetos dele.
  • SOURCE_CHANNEL_ID e TARGET_CHANNEL_ID: são os identificadores dos canais.

    • Para um canal ativo, use live como o ID.
    • Se o canal de "destino" especificado ainda não existir, esse comando criará o canal antes de implantar nele.

Reverter para uma versão anterior do seu site

Você pode reverter para exibir uma versão anterior do canal ativo do seu site. Essa ação será útil se o lançamento atual tiver um problema e você quiser reverter para exibir uma versão do seu site que esteja funcionando. Ou talvez seu site exibiu conteúdo temporário para um feriado ou evento especial, mas agora você quer reverter para exibir o conteúdo "normal" dele.

Ao reverter, você cria um novo lançamento que exibe a mesma versão do conteúdo de um lançamento anterior. Na tabela Histórico de lançamento, os dois lançamentos listam o mesmo identificador de versão.

Veja como reverter:

  1. No Console do Firebase, na tabela Histórico de lançamento do seu site, passe o cursor sobre a entrada do lançamento anterior para que você quer reverter.

  2. Clique em e selecione Reverter.

Excluir uma versão manualmente

Talvez seja necessário excluir manualmente um lançamento do canal ativo para liberar armazenamento no Hosting para o projeto. Você só pode excluir lançamentos anteriores, não o que está sendo veiculado atualmente no seu site ativo.

Ao excluir um lançamento, você está excluindo o conteúdo dele, que está programado para exclusão em até 24 horas. O objeto de lançamento em si é mantido para que você ainda possa ver seus metadados (quem implantou e quando foram implantados).

Veja como excluir um lançamento:

  1. No Console do Firebase, na tabela Histórico de lançamento do seu site, passe o cursor sobre a entrada do lançamento anterior que você quer excluir.

  2. Clique em , depois selecione Excluir.

Excluir manualmente um canal de visualização

Para visualizar seus canais, clique naquele que você quer visualizar. Dessa forma, é possível ver, excluir e reverter as implantações e versões mais recentes vinculadas ao canal específico. Você pode excluir um canal de visualização, mas não é possível excluir o canal ativo do site.

Quando você exclui um canal de visualização, o canal, junto com os lançamentos e as versões associadas, é programado para exclusão em 24 horas. O URL de visualização associado também é desativado. Uma exceção à exclusão de versão ocorre quando uma versão é associada a outro lançamento. Isso acontece, por exemplo, se você clonar uma versão de um canal para outro no mesmo site.

O Hosting tem duas maneiras diferentes de excluir um canal de visualização:

  • Console do Firebase
    Na linha do canal de visualização, clique em e selecione Excluir canal. Confirme a exclusão.

  • CLI do Firebase
    Execute o comando a seguir em qualquer diretório:

    firebase hosting:channel:delete CHANNEL_ID

Comandos da CLI para canais de visualização e clonagem

Comandos para canais de visualização

Todos os comandos para canais de visualização aceitam destinos de implantação se você tiver vários sites do Hosting.

Comando Descrição
firebase hosting:channel:create CHANNEL_ID

Cria um novo canal de visualização no site do Hosting padrão (em inglês) usando o CHANNEL_ID especificado

Esse comando não é implantado no canal.

firebase hosting:channel:delete CHANNEL_ID

Exclui o canal de visualização especificado

Não é possível excluir o canal ativo de um site.

firebase hosting:channel:deploy CHANNEL_ID

Implanta o conteúdo e configura o Hosting no canal de visualização especificado

Se o canal de visualização ainda não existir, esse comando criará o canal no site padrão do Hosting antes de implantar no canal.

firebase hosting:channel:list Lista todos os canais (incluindo o canal "ativo") no site padrão do Hosting
firebase hosting:channel:open CHANNEL_ID Abre um navegador no URL do canal especificado ou retorna o URL se não for possível abrir em um navegador

Comandos para clonagem de versão

Comando Descrição
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona a versão implantada mais recentemente no canal "de origem" especificado para o canal "de destino" especificado

Esse comando também implanta no canal "de origem" especificado. Se o canal "de destino" ainda não existe, este comando cria um novo canal de visualização no site "de destino" do Hosting antes de fazer a implantação no canal.

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

Clona a versão especificada no canal "de origem" especificado

Esse comando também implanta no canal "de origem" especificado. Se o canal "de destino" ainda não existe, este comando cria um novo canal de visualização no site "de destino" do Hosting antes de fazer a implantação no canal.

O VERSION_ID está no painel do Hosting do Console do Firebase.