Destinos de implantação são identificadores de nome abreviado, definidos por você, para recursos no 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 do Hosting, vários buckets do Cloud Storage ou várias instâncias do Realtime Database. Com esses destinos, a CLI Firebase pode implantar configurações em um recurso ou grupo de recursos específicos do Firebase no seu projeto, como:
- configuração de hospedagem para cada um dos seus sites do Hosting
- recursos estáticos do diretório do seu projeto para cada um dos seus sites do Hosting
- Regras de segurança compartilhadas por várias instâncias de Realtime Database ou vários buckets de Cloud Storage
Siga estas etapas para configurar um destino de implantação:
- Aplique um
TARGET_NAME
ao recurso ou grupo de recursos do Firebase. - 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 os comandos da CLI Firebase (como
firebase deploy
), a CLI Firebase associa cada TARGET_NAME
aos
recursos associados do Firebase. Em seguida, a CLI informa as configurações de cada recurso ao seu projeto do Firebase.
Configurar destinos de implantação para os recursos do Firebase
Com a CLI do Firebase, aplique um TARGET_NAME
(identificador de nome curto definido por você) a um recurso ou um grupo de recursos do Firebase.
O Firebase é compatível com destinos de implantação para os seguintes elementos:
- Sites do Firebase Hosting
- Buckets de armazenamento do Cloud Storage for 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 Hosting
Para criar um destino de implantação e aplicar um TARGET_NAME
a um site do
Hosting, execute o seguinte comando da CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Em que os parâmetros são:
TYPE: o tipo de recurso relevante do Firebase
- Para sites Firebase Hosting, use
hosting
.
- Para sites Firebase Hosting, use
TARGET_NAME: um nome exclusivo para o site Hosting em que as implantações serão realizadas
RESOURCE_IDENTIFIER: o
SITE_ID
do site do Hosting conforme listado no seu projeto do Firebase
Por exemplo, se você criou dois sites (myapp-blog
e myapp-app
) no projeto do Firebase, pode aplicar um TARGET_NAME
exclusivo (blog
e app
, respectivamente) para 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 Cloud Storage ou Realtime Database, execute o seguinte comando
da CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
Em que os parâmetros são:
TYPE: o tipo de recurso relevante do Firebase
- Para buckets Cloud Storage, use
storage
. - Para instâncias Realtime Database, use
database
.
- Para buckets Cloud Storage, use
TARGET_NAME: um nome exclusivo para o recurso ou grupo que compartilham regras de segurança
RESOURCE_IDENTIFIER: os identificadores dos recursos conforme listados no seu projeto do Firebase, como nomes de bucket de armazenamento ou IDs de instâncias de banco de dados, que compartilham as mesmas regras de segurança
Por exemplo, você pode aplicar TARGET_NAME
de main
a um grupo de três buckets 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 do Firebase.
Configurar seu arquivo firebase.json para usar destinos de implantação
Após configurar 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 recurso do Firebase
TYPE
(hosting
,storage
oudatabase
). - Nas matrizes, especifique o
target
(usando oTARGET_NAME
) e defina as configurações do recurso ou grupo de recursos associados do Firebase.
Continuando com os exemplos acima, em que seu projeto do Firebase tem dois sites do Hosting e três buckets do Cloud Storage que compartilham as mesmas regras de segurança, seu arquivo firebase.json
seria 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 ao executar o comando 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 projeto. Você pode gerenciar os destinos de implantação do seu projeto ao executar qualquer um dos seguintes comandos da 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 o site do Hosting do destino especificado |
Os comandos target:remove
e target:clear
atualizam automaticamente as configurações de destino
de implantação no arquivo .firebaserc
no diretório do projeto.
Testar localmente antes de implantar
Execute qualquer um dos comandos a seguir por meio da raiz do diretório do seu projeto.
Comando | Descrição |
---|---|
firebase emulators:start
|
Emula todos os recursos configurados no diretório do projeto |
firebase emulators:start \ |
Emula apenas o conteúdo e a configuração do Hosting do site Hosting especificado |
firebase emulators:start \
|
Emula apenas o arquivo de regras para o destino Cloud Storage especificado |
firebase emulators:start \
|
Emula apenas o arquivo de regras para o destino Realtime Database especificado |
Saiba como configurar e usar o Firebase Local Emulator Suite.
Implantar recursos específicos do Firebase
Execute qualquer um dos comandos a seguir por meio da 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 Hosting especificado para o canal ativo do site |
firebase hosting:channel:deploy CHANNEL_ID \ |
Implanta apenas o conteúdo e a configuração do Hosting do site Hosting especificado para um canal de visualização do site |
firebase deploy \
|
Implanta apenas o arquivo de regras para o destino Cloud Storage especificado |
firebase deploy \
|
Implanta apenas o arquivo de regras para o destino Realtime Database especificado |