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:
- Configure a CLI do Firebase caso ainda não tenha feito isso.
- Em um prompt do shell, mude para o diretório do projeto. O diretório do projeto
contém o arquivo
firebase.json
. - 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:
- 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 executarext:export
, já está no diretório certo. - 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.