Implantar alvos

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:

  1. Aplique um TARGET_NAME ao recurso ou grupo de recursos do Firebase de destino.
  2. No arquivo firebase.json , faça referência ao TARGET_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:

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 .
  • 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 .
  • 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 :

  1. Crie uma matriz de objetos de configuração para cada TYPE de recurso do Firebase ( hosting , storage ou database ).
  2. Nas matrizes, especifique o target (usando TARGET_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 \
TYPE RESOURCE_IDENTIFIER
Remove um recurso do destino ao qual foi atribuído
firebase target:clear \
TYPE TARGET_NAME
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 \
--only hosting: TARGET_NAME
Emula apenas o conteúdo e a configuração do Hosting do site de Hosting especificado
firebase emulators:start \
--only storage: TARGET_NAME
Emula apenas o arquivo de regras do destino especificado do Cloud Storage
firebase emulators:start \
--only database: TARGET_NAME
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 \
--only hosting: TARGET_NAME
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 \
--only TARGET_NAME
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 \
--only storage: TARGET_NAME
Implanta apenas o arquivo de regras para o destino especificado do Cloud Storage
firebase deploy \
--only database: TARGET_NAME
Implanta apenas o arquivo de regras para o destino especificado do Realtime Database