Antes de fazer a implantação no seu site ativo, veja e teste as alterações. Com o Firebase Hosting, você pode conferir e testar as mudanças localmente e interagir com os recursos do projeto de back-end emulado. Se você precisar que seus colegas de equipe visualizem e testem as alterações, o Hosting poderá criar URLs de visualização temporários e compartilháveis do site. Também oferecemos suporte a uma integração do GitHub para implantar de uma solicitação de envio.
Antes de começar
Siga as instruções na página de Primeiras etapas com o Hosting, especificamente as seguintes tarefas:
- Instale ou atualize a CLI do Firebase para a versão mais recente.
- Conecte o diretório do projeto local (contendo o conteúdo do seu app) ao projeto do Firebase.
Você tem a opção de implantar o conteúdo e a configuração do Hosting do seu aplicativo, mas não é um pré-requisito para as etapas desta página.
Etapa 1: testar localmente
Se você estiver fazendo iterações rápidas ou quiser que o app interaja com os recursos de back-end do projeto emulado, teste o conteúdo e a configuração do Hosting no local. Ao testar localmente, o Firebase exibe seu app da Web em um URL hospedado localmente.
Hosting faz parte do Firebase Local Emulator Suite, que permite que seu app interaja com o conteúdo e a configuração Hosting emulado e, opcionalmente, os recursos emulados do projeto (funções, bancos de dados e regras).
(Opcional) Por padrão, seu app hospedado localmente interagirá com recursos de projetos reais, e não emulados (funções, banco de dados, regras etc.). Outra opção é conectar o aplicativo para usar quaisquer recursos de projeto emulados configurados. Saiba mais: Realtime Database | Cloud Firestore | Cloud Functions
Na raiz do diretório do projeto local, execute o seguinte comando:
firebase emulators:start
Abra seu app da Web no URL local retornado pela CLI (geralmente
http://localhost:5000
).Para atualizar o URL local com alterações, atualize o navegador.
Testar usando outros dispositivos locais
Por padrão, os emuladores respondem apenas a solicitações de localhost
. Isso
significa que será possível acessar seu conteúdo hospedado pelo navegador da Web no seu computador,
mas não em outros dispositivos na rede. Se você quiser testar usando
outros dispositivos locais, configure seu firebase.json
da seguinte maneira:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
Etapa 2: visualizar e compartilhar
Se quiser que outras pessoas vejam as alterações no seu app da Web antes da publicação, use os canais de visualização.
Depois de implantado em um canal de visualização, o Firebase exibe seu app da Web em um "URL de visualização", que é um URL temporário e compartilhável. Ao usar um URL de visualização, seu app da Web interage com o back-end real em todos os recursos do projeto, exceto em funções "fixadas" nas configuração de substituições. .
Embora os URLs de visualização sejam difíceis de adivinhar (porque contêm um hash aleatório), eles são públicos. Assim, qualquer pessoa que saiba o URL pode acessá-lo.
Na raiz do diretório do projeto local, execute o seguinte comando:
firebase hosting:channel:deploy CHANNEL_ID
Substitua CHANNEL_ID por uma string sem espaços (por exemplo,
feature_mission-2-mars
). Esse ID é usado para criar o URL de visualização associado ao canal.Abra seu app da Web no URL de visualização retornado pela CLI. Você verá algo mais ou menos assim:
PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.app
Para atualizar seu URL de visualização com alterações, execute o mesmo comando novamente. Especifique a mesma
CHANNEL_ID
no comando.
Saiba mais sobre como gerenciar canais de visualização, incluindo como definir a validade de um canal.
O Firebase Hosting é compatível com uma ação do GitHub que cria e atualiza automaticamente um URL de visualização quando você confirma alterações em uma solicitação de envio. Saiba como configurar e usar essa ação do GitHub.
Etapa 3: implantar ao vivo
Quando estiver pronto para compartilhar suas alterações com o mundo, implante o conteúdo e a configuração do Hosting no canal ativo. Dependendo do seu caso de uso, o Firebase oferece algumas opções diferentes para essa etapa. Veja as opções abaixo.
Opção 1: copiar de um canal de visualização para o canal ativo
Com essa opção, não há dúvidas de que você está implantando no canal ativo o conteúdo e a configuração exatos que você testou em um canal de visualização. Saiba mais sobre como clonar versões.
Em qualquer diretório, execute o seguinte comando:
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live
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 que estão no mesmo projeto do Firebase ou até mesmo em projetos diferentes do Firebase.
SOURCE_CHANNEL_ID: identificador do canal que está exibindo a versão a ser implantada no canal ativo.
- Para um canal ativo, use
live
como o ID.
- Para um canal ativo, use
Analise as alterações (próxima etapa).
Opção 2: implantar a partir do diretório de projetos local no canal ao vivo
Ela oferece a flexibilidade para ajustar as configurações específicas do canal ativo ou para implantar mesmo que você não tenha usado um canal de visualização.
Na raiz do diretório do projeto local, execute o seguinte comando:
firebase deploy --only hosting
Analise as alterações (próxima etapa).
Etapa 4: visualizar as alterações no seu site ativo
Ambas as opções acima implantam seu conteúdo e configuração do Hosting nos seguintes sites:
Os subdomínios provisionados pelo Firebase para seu site Hosting padrão e outros sites Hosting:
SITE_ID.web.app
(comoPROJECT_ID.web.app
)
SITE_ID.firebaseapp.com
(comoPROJECT_ID.firebaseapp.com
)Quaisquer domínios personalizados que você tenha conectado aos seus sites do Hosting
Para restringir a implantação a um site específico do Hosting, defina um destino de implantação no comando da CLI.
Outras atividades e informações de implantação
Adicionar um comentário à implantação
Como alternativa, é possível adicionar um comentário a uma implantação. Esse comentário será exibido com as outras informações de implantação no painel Hosting no console Firebase. Exemplo:
firebase deploy --only hosting -m "Deploying the best new feature ever."
Adicionar tarefas de pré e pós-implantação com script
Como alternativa, é possível conectar scripts de shell ao comando firebase deploy
para realizar tarefas de pré ou pós-implantação. Por exemplo, um hook de pós-implantação poderia notificar os administradores sobre novas implantações de conteúdo no site. Consulte a
documentação da CLI do Firebase para mais detalhes.
Armazenar o conteúdo implantado em cache
Quando uma solicitação de conteúdo estático é feita, o Firebase Hosting armazena em cache automaticamente o conteúdo na CDN. Se você fizer uma nova implantação do conteúdo do seu site, o Firebase limpará automaticamente todo o conteúdo estático em cache na CDN para que novas solicitações recebam seu novo conteúdo.
É possível configurar o armazenamento em cache do conteúdo dinâmico.
Exibir por HTTPS
Verifique se todos os recursos externos que não estão hospedados no Firebase Hosting estão sendo carregados por SSL (HTTPS), incluindo scripts externos. Na maioria dos navegadores, os usuários não conseguem carregar conteúdo misto, ou seja, tráfego SSL e não SSL.
Como excluir arquivos
No Firebase Hosting, a principal forma de excluir arquivos selecionados de um site implantado é excluir os arquivos localmente e reimplantá-los em seguida.
Próximas etapas
Integre com o GitHub para iterar o conteúdo visualizado configurando a ação do GitHub.
Saiba mais sobre outros recursos de hospedagem:
Consulte a documentação completa da CLI do Firebase.
Prepare-se para lançar seu aplicativo:
- Configure os alertas de orçamento para seu projeto no console Google Cloud.
- Monitore o painel Uso e faturamento no console do Firebase para ter uma visão geral do uso do projeto em vários serviços do Firebase. Também é possível acessar o painel Uso do Hosting para ver mais informações detalhadas.
- Consulte a lista de verificação de lançamento do Firebase.