Os destinos de implantação são identificadores de nomes curtos (que você mesmo define) para recursos do Firebase no seu projeto do Firebase, como um site do Hosting com ativos estáticos exclusivos ou um grupo de instâncias do Realtime Database que compartilham as mesmas regras de segurança.
Os destinos de implantação são úteis quando você tem vários sites de hospedagem , vários buckets do Cloud Storage ou várias instâncias do Realtime Database . Com os destinos de implantação, a CLI do Firebase pode implantar configurações em um recurso ou grupo de recursos específico do Firebase no seu projeto, como:
- A configuração de hospedagem para cada um dos seus sites de hospedagem
- Ativos estáticos do diretório do seu projeto para cada um dos seus sites de hospedagem
- Regras de segurança compartilhadas por várias instâncias do Realtime Database ou vários buckets do Cloud Storage
Para configurar um destino de implantação:
- Aplique um
TARGET_NAME
ao recurso ou grupo de recursos do Firebase de destino. - No arquivo
firebase.json
, faça referência aoTARGET_NAME
associado ao definir as configurações de cada recurso ou grupo de recursos.
Quando você executa comandos da CLI do Firebase (como firebase deploy
), a CLI do Firebase emparelha cada TARGET_NAME
com seus recursos associados do Firebase. A CLI então comunica ao seu projeto do Firebase as configurações de cada recurso.
Configure destinos de implantação para seus recursos do Firebase
Usando a CLI do Firebase, aplique um TARGET_NAME
(identificador de nome abreviado que você mesmo define) a um recurso do Firebase ou grupo de recursos do Firebase. O Firebase oferece suporte a destinos de implantação para:
- Sites de hospedagem Firebase
- Buckets de armazenamento do Cloud Storage para Firebase
- Instâncias do Firebase Realtime Database
As configurações dos destinos de implantação são armazenadas no arquivo .firebaserc
no diretório do projeto, portanto, você só precisa configurar os destinos de implantação uma vez por projeto.
Configurar destinos de implantação para hospedagem
Para criar um destino de implantação e aplicar um TARGET_NAME
a um site de hospedagem, execute o seguinte comando CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Onde estão os parâmetros:
TYPE – o tipo de recurso relevante do Firebase
- Para sites do Firebase Hosting, use
hosting
.
- Para sites do Firebase Hosting, use
TARGET_NAME — um nome exclusivo para o site de hospedagem no qual você está implantando
RESOURCE_IDENTIFIER — o
SITE_ID
do site de hospedagem listado em seu projeto do Firebase
Por exemplo, se você criou dois sites ( myapp-blog
e myapp-app
) no seu projeto do Firebase, poderá aplicar um TARGET_NAME
exclusivo ( blog
e app
, respectivamente) a cada site executando os seguintes comandos:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Configurar destinos de implantação para Cloud Storage ou Realtime Database
Para criar um destino de implantação e aplicar um TARGET_NAME
a um conjunto de recursos do Cloud Storage ou do Realtime Database, execute o seguinte comando da CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
Onde estão os parâmetros:
TYPE – o tipo de recurso relevante do Firebase
- Para intervalos do Cloud Storage, use
storage
. - Para instâncias do Realtime Database, use
database
.
- Para intervalos do Cloud Storage, use
TARGET_NAME — um nome exclusivo para o recurso ou grupo de recursos que compartilham regras de segurança
RESOURCE_IDENTIFIER — os identificadores dos recursos listados em seu projeto do Firebase (como nomes de intervalos de armazenamento ou IDs de instância de banco de dados) que compartilham as mesmas regras de segurança
Por exemplo, você pode aplicar o TARGET_NAME
de main
a um grupo de três intervalos regionais do Cloud Storage (que compartilham as mesmas regras de segurança) executando o seguinte comando:
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
Observe que myproject.appspot.com
é o identificador do bucket padrão, enquanto myproject-eu
e myproject-ja
são dois buckets adicionais criados no projeto Firebase.
Configure seu arquivo firebase.json para usar destinos de implantação
Depois de configurar os destinos de implantação para seus recursos do Firebase, faça referência a cada TARGET_NAME
aplicado no arquivo de configuração firebase.json
:
- Crie uma matriz de objetos de configuração para cada
TYPE
de recurso do Firebase (hosting
,storage
oudatabase
). - Nas matrizes, especifique o
target
(usandoTARGET_NAME
) e defina suas configurações para o recurso ou grupo de recursos do Firebase associado.
Continuando os exemplos acima, onde seu projeto Firebase tem dois sites de hospedagem e três buckets do Cloud Storage (que compartilham as mesmas regras de segurança), seu arquivo firebase.json
ficaria assim:
{ "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 } ] } { "storage": [ { "target": "main", // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets "rules": "storage.main.rules" // the file that contains the shared security rules } ] }
Se você tiver várias configurações para seus recursos, poderá criar vários destinos de implantação e especificar cada um deles no arquivo firebase.json
. Todos os recursos associados serão implantados juntos quando você executar firebase deploy
.
Gerenciar destinos de implantação
As configurações dos destinos de implantação são armazenadas no arquivo .firebaserc
no diretório do seu projeto. Você pode gerenciar os destinos de implantação do seu projeto executando qualquer um dos comandos a seguir na raiz do diretório do seu projeto.
Comando | Descrição |
---|---|
firebase target | Lista os destinos de implantação para o diretório do seu projeto atual |
firebase target:remove \ | Remove um recurso do destino ao qual foi atribuído |
firebase target:clear \ | Remove todos os recursos ou site de hospedagem do destino especificado |
Os comandos target:remove
e target:clear
atualizam automaticamente as configurações do destino de implantação no arquivo .firebaserc
no diretório do projeto.
Teste localmente antes de implantar
Execute qualquer um dos seguintes comandos na raiz do diretório do seu projeto.
Comando | Descrição |
---|---|
firebase emulators:start | Emula todos os recursos configurados no diretório do seu projeto |
firebase emulators:start \ | Emula apenas o conteúdo e a configuração do Hosting do site de Hosting especificado |
firebase emulators:start \ | Emula apenas o arquivo de regras do destino especificado do Cloud Storage |
firebase emulators:start \ | Emula somente o arquivo de regras para o destino especificado do Realtime Database |
Saiba mais sobre como configurar e usar o Firebase Local Emulator Suite .
Implantar recursos específicos do Firebase
Execute qualquer um dos seguintes comandos na raiz do diretório do seu projeto.
Comando | Descrição |
---|---|
firebase deploy | Cria uma versão de todos os recursos implantáveis no diretório do seu projeto |
firebase deploy \ | Implanta apenas o conteúdo e a configuração do Hosting do site do Hosting especificado no canal ativo do site |
firebase hosting:channel:deploy CHANNEL_ID \ | Implanta apenas o conteúdo e a configuração do Hosting do site do Hosting especificado em um canal de visualização do site |
firebase deploy \ | Implanta apenas o arquivo de regras para o destino especificado do Cloud Storage |
firebase deploy \ | Implanta apenas o arquivo de regras para o destino especificado do Realtime Database |