Reutilizar a configuração de extensões de um projeto

Depois de instalar e configurar extensões em um projeto do Firebase, é possível salvar a configuração e implantá-la em outro projeto. A configuração salva tem informações sobre todas as instâncias de extensão instaladas, incluindo as versões de cada instância e os valores de parâmetro especificados no momento da instalação.

Entre as possibilidades de uso, estão:

  • recriar a configuração de extensões de um projeto em outros projetos;
  • compartilhar a configuração de extensões com outras pessoas;
  • confirmar a configuração de extensões no controle de origem;
  • adicionar as extensões ao pipeline de CI/CD.

Salvar a configuração de extensões de um projeto

Para salvar a configuração de extensões de um projeto, siga estas etapas:

  1. Configure a CLI do Firebase caso ainda não tenha feito isso.
  2. Em um prompt do shell, mude para o diretório do projeto. O diretório do projeto contém o arquivo firebase.json.
  3. Execute o comando ext:export:
    firebase ext:export –-project=YOUR_PROJECT_ID

O comando ext:export adicionará uma seção extensions ao arquivo firebase.json. Exemplo:

{
 "extensions": {
   "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
   "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
 }
}

Além disso, o comando ext:export cria um diretório extensions que contém um arquivo .env para cada instância de extensão instalada. Esses arquivos contêm os parâmetros de configuração de cada instância. Por exemplo, uma instância de storage-resize-images pode ter um arquivo .env como este:

IMAGE_TYPE=jpeg
LOCATION=us-central1
IMG_BUCKET=${param:PROJECT_ID}.appspot.com
IMG_SIZES=100x100
DELETE_ORIGINAL_FILE=false

Implantar uma configuração de extensões em um projeto

Depois de salvar a configuração de extensões de um projeto, é possível implantá-la em um projeto usando a CLI do Firebase. Ao implantar uma configuração de extensões, você instala, atualiza e configura todas as instâncias de extensão em uma configuração salva em um projeto de uma só vez.

Para implantar uma configuração de extensões, siga estas etapas:

  1. Em um prompt do shell, mude para o diretório que contém a configuração de extensões salva, ou seja, o diretório que contém firebase.json. Se você acabou de executar ext:export, já está no diretório certo.
  2. Execute o comando deploy, especificando o projeto em que você quer implantar as extensões:
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

O comando deploy validará cada configuração de instância, perguntará se você quer excluir todas as instâncias da extensão do projeto de destino que não estão listadas em firebase.json e, em seguida, implantará todas as instâncias de extensão.

Configurações de extensão específicas do projeto

As configurações de extensões salvas podem ser usadas para implantação em vários projetos diferentes, como em um projeto de preparo e outro de produção. Ao fazer isso, alguns valores de parâmetro podem precisar ser diferentes para cada projeto. Os arquivos .env específicos do projeto tornam isso possível. É possível colocar os valores de parâmetro que são diferentes entre os projetos em extensões/${extensionInstanceId}.env.${projectIdOrAlias}, e os valores compartilhados, em extensões/${extensionInstanceId}.env.