Material de consulta sobre a CLI do Firebase

A CLI do Firebase (GitHub) oferece várias ferramentas de gerenciamento, visualização e implantação para projetos do Firebase.

Antes de usar a CLI do Firebase, configure um projeto do Firebase.

Configurar ou atualizar a CLI

Instalar a CLI Firebase

É possível instalar a CLI do Firebase usando um método compatível com seu sistema operacional, nível de experiência e/ou caso de uso. Seja qual for o modo de instalação da CLI, você terá acesso às mesmas funcionalidades e ao comando firebase.

Windows macOS Linux

Windows

É possível instalar a CLI do Firebase para Windows com uma das seguintes opções:

Opção Descrição Recomendada para…
binário autônomo Faça o download do binário autônomo para a CLI. Em seguida, acesse o executável para abrir um shell em que é possível executar o comando firebase. Novos desenvolvedores

Desenvolvedores que não usam ou não conhecem o Node.js
npm Use o npm (Gerenciador de pacotes do Node.js) para instalar a CLI e ativar o comando firebase, disponível globalmente. Desenvolvedores que usam o Node.js.

binário autônomo

Para fazer o download e executar o binário da CLI do Firebase, siga estas etapas:

  1. Faça o download do binário da CLI do Firebase para Windows.

  2. Acesse o binário para abrir um shell em que é possível executar o comando firebase.

  3. Prossiga para fazer login e testar a CLI.

npm

Use o npm (Gerenciador de pacotes do Node.js) para instalar a CLI do Firebase. Siga estas etapas:

  1. Instale o Node.js usando o nvm-windows (Gerenciador de versões do Node.js). Esse processo instala automaticamente as ferramentas do comando npm.

  2. Instale a CLI Firebase via npm executando o seguinte comando:

    npm install -g firebase-tools

    Essa ação ativa o comando firebase, disponível globalmente.

  3. Prossiga para fazer login e testar a CLI.

macOS ou Linux

É possível instalar a CLI do Firebase para macOS ou Linux usando uma das seguintes opções:

Opção Descrição Recomendada para…
script de instalação automática Execute um único comando que detecta automaticamente o sistema operacional, faz o download da versão mais recente da CLI e ativa o comando firebase, disponível globalmente. Novos desenvolvedores

Desenvolvedores que não usam ou não conhecem o Node.js

Implantações automatizadas em um ambiente de CI/CD
binário autônomo Faça o download do binário autônomo para a CLI. Depois, é possível configurar e executar o binário para que se adeque ao seu fluxo de trabalho. Fluxos de trabalho totalmente personalizáveis usando a CLI
npm Use o npm (Gerenciador de pacotes do Node.js) para instalar a CLI e ativar o comando firebase, disponível globalmente. Desenvolvedores que usam o Node.js.

script de instalação automática

Para instalar a CLI do Firebase usando o script de instalação automática, siga estas etapas:

  1. Execute o comando cURL a seguir:

    curl -sL https://firebase.tools | bash

    Este script detecta automaticamente o sistema operacional, faz o download da versão mais recente da CLI do Firebase e ativa o comando firebase, disponível globalmente.

  2. Prossiga para fazer login e testar a CLI.

Para mais exemplos e detalhes sobre o script de instalação automática, consulte o código-fonte do script em firebase.tools.

binário autônomo

Para fazer o download e executar o binário da CLI do Firebase específico para seu SO, siga estas instruções:

  1. Faça o download do binário da CLI do Firebase para o SO: macOS Linux.

  2. (Opcional) Configure o comando firebase, disponível globalmente:

    1. Execute chmod +x ./firebase_tools para tornar o binário executável.
    2. Adicione o caminho do binário ao seu PATH.
  3. Prossiga para fazer login e testar a CLI.

npm

Use o npm (Gerenciador de pacotes do Node.js) para instalar a CLI do Firebase. Siga estas etapas:

  1. Instale o Node.js usando o nvm (Gerenciador de versões do Node.js)
    . Esse processo instala automaticamente as ferramentas do comando npm.

  2. Instale a CLI Firebase via npm executando o seguinte comando:

    npm install -g firebase-tools

    Essa ação ativa o comando firebase, disponível globalmente.

  3. Prossiga para fazer login e testar a CLI.

Fazer login e testar a CLI do Firebase

Depois de instalar a CLI, será preciso fazer a autenticação. Em seguida, liste seus projetos do Firebase para confirmar a autenticação.

  1. Faça login no Firebase com sua Conta do Google executando o seguinte comando:

    firebase login

    Esse comando conecta sua máquina local ao Firebase e concede acesso aos projetos do Firebase.

  2. Para testar se a CLI está instalada corretamente e acessando sua conta, liste seus projetos do Firebase. Execute este comando:

    firebase projects:list

    A lista exibida precisa conter os mesmos projetos do Firebase exibidos no Console do Firebase.

Atualizar para a versão mais recente da CLI

Geralmente, você quer usar a versão mais atualizada da CLI do Firebase.

O método de atualização da versão da CLI depende do seu sistema operacional e da maneira que você a instalou.

Windows

  • binário autônomo: faça o download da nova versão e substitua a antiga no seu sistema.
  • npm: execute o comando npm install -g firebase-tools.

macOS

  • script de instalação automática: execute o comando curl -sL https://firebase.tools | upgrade=true bash.
  • binário autônomo: faça o download da nova versão e substitua a antiga no seu sistema.
  • npm: execute o comando npm install -g firebase-tools.

Linux

  • script de instalação automática: execute o comando curl -sL https://firebase.tools | upgrade=true bash.
  • binário autônomo: faça o download da nova versão e substitua a antiga no seu sistema.
  • npm: execute o comando npm install -g firebase-tools.

Usar a CLI com sistemas de CI

A CLI do Firebase requer um navegador para concluir a autenticação, mas ela é totalmente compatível com CI e outros ambientes sem interface gráfica.

  1. Em uma máquina com navegador, instale a CLI do Firebase.

  2. Execute o seguinte comando para iniciar o processo de login:

    firebase login:ci
  3. Acesse o URL fornecido e faça login usando uma Conta do Google.

  4. Gere um novo token de atualização. A sessão atual da CLI não será afetada.

  5. Armazene o token de saída de uma maneira segura, mas acessível, no sistema de CI.

  6. Use esse token ao executar comandos do firebase. É possível escolher qualquer uma destas duas opções:

    • Opção 1: armazene o token como a variável de ambiente FIREBASE_TOKEN. Seu sistema usará o token automaticamente.

    • Opção 2: execute todos os comandos do firebase com a sinalização --token TOKEN no seu sistema de CI.
      Esta é a ordem de precedência para o carregamento do token: sinalização, variável de ambiente e projeto do Firebase desejado.

Inicializar um projeto do Firebase

A realização de várias tarefas comuns com a CLI, como a implantação em um projeto do Firebase, exige um diretório de projeto. Ele é criado usando o comando firebase init. Normalmente, um diretório de projeto é o mesmo diretório da raiz de controle de origem que, depois de executar o comando firebase init, incluirá um arquivo de configuração firebase.json.

Para inicializar um novo projeto do Firebase, execute o seguinte comando no diretório do seu aplicativo:

firebase init

O comando firebase init guia você pelas etapas de configuração do diretório do seu projeto e de alguns produtos do Firebase. Durante a inicialização do projeto, a CLI do Firebase solicita que você faça o seguinte:

  • Selecione os produtos do Firebase que você quer configurar no seu projeto do Firebase.

    Essa etapa auxilia na definição de configurações de arquivos específicos dos produtos selecionados. Para mais detalhes sobre essas configurações, consulte a documentação do produto específico, como a do Hosting. Lembre-se de que é possível executar o comando firebase init mais tarde para configurar outros produtos do Firebase.

  • Selecione um projeto padrão do Firebase.

    Essa etapa associa o diretório do projeto atual a um projeto do Firebase para que os comandos específicos dele, como firebase deploy, sejam executados no projeto apropriado do Firebase.

    Também é possível associar vários projetos do Firebase (como um de preparo e um de produção) ao mesmo diretório de projetos.

Ao final da inicialização, o Firebase cria automaticamente os dois arquivos a seguir na raiz do diretório local do app:

  • Um arquivo de configuração firebase.json que exibe a configuração do seu projeto.

  • Um arquivo .firebaserc que armazena aliases do seu projeto.

Arquivo firebase.json

O comando firebase init cria um arquivo de configuração firebase.json na raiz do diretório do seu projeto.

O arquivo firebase.json é necessário para implantar recursos com a CLI do Firebase porque ela especifica quais arquivos e configurações do diretório são implantados no projeto do Firebase. Como algumas configurações podem ser definidas tanto no diretório de projeto como no console do Firebase, resolva quaisquer conflitos de implantação possíveis.

É possível configurar a maioria das opções de Firebase Hosting diretamente no arquivo firebase.json. Porém, no caso de outros serviços que podem ser implantados com a CLI do Firebase, o comando firebase init cria arquivos específicos em que é possível definir configurações para esses serviços, como um arquivo index.js para o Cloud Functions. Também é possível configurar hooks de pré ou pós-implantação no arquivo firebase.json.

Confira abaixo um exemplo de arquivo firebase.json com as configurações padrão que serão aplicadas se você selecionar Firebase Hosting, Cloud Firestore e Cloud Functions for Firebase (com as opções de origem e lint do TypeScript selecionadas) durante a inicialização.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

Enquanto firebase.json é usado por padrão, é possível transmitir a sinalização --config PATH para especificar um arquivo de configuração alternativo.

Configuração para vários bancos de dados Cloud Firestore

Quando você executar firebase init, o arquivo firebase.json conterá uma única chave firestore correspondente ao banco de dados padrão do projeto, conforme mostrado acima.

Se o projeto contiver vários bancos de dados Cloud Firestore, edite o arquivo firebase.json para associar diferentes Cloud Firestore Security Rules e arquivos de origem do índice do banco de dados a cada banco de dados. Modifique o arquivo com uma matriz JSON, com uma entrada para cada banco de dados.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Arquivos Cloud Functions a serem ignorados na implantação

No momento da implantação da função, a CLI define automaticamente uma lista de arquivos no diretório functions que vão ser ignorados. Isso impede que a implantação use os arquivos de back-end irrelevantes que aumentariam o tamanho dos dados da implantação.

Veja a lista de arquivos ignorados por padrão no formato JSON:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

Se você adicionar seus próprios valores personalizados para ignore em firebase.json, mantenha a lista de arquivos mostrados acima (ou adicione se estiver faltando).

Gerenciar aliases de projeto

É possível associar diversos projetos do Firebase ao mesmo diretório do projeto. Você pode usar um projeto para preparo e outro para produção, por exemplo. Ao usar diferentes ambientes de projeto, é possível confirmar as alterações antes de implantá-las na produção. Com o comando firebase use, dá para alternar os aliases e criar novos.

Adicionar um alias de projeto

Quando você seleciona um projeto do Firebase durante a inicialização do projeto, o alias de default é atribuído automaticamente ao projeto. No entanto, para permitir que comandos específicos do projeto sejam executados em outro projeto do Firebase, e ainda poder usar o mesmo diretório do projeto, execute o seguinte comando no diretório do projeto:

firebase use --add

Esse comando solicita que você selecione outro projeto do Firebase e o atribua como alias. As atribuições de aliases são gravadas em um arquivo .firebaserc dentro do diretório do projeto.

Usar aliases de projeto

Para usar aliases atribuídos de projetos do Firebase, execute qualquer um dos seguintes comandos no diretório do projeto:

Comando Descrição
firebase use Exibe uma lista de aliases atualmente definidos para o diretório do seu projeto.
firebase use \
PROJECT_ID|ALIAS
Direciona todos os comandos para serem executados no projeto específico do Firebase.
A CLI usa este projeto como o "projeto ativo" atualmente.
firebase use --clear Limpa o projeto ativo.

Execute firebase use PROJECT_ID|ALIAS para definir um novo projeto ativo antes de executar outros comandos da CLI.

firebase use \
--unalias PROJECT_ALIAS
Remove um alias do diretório do seu projeto.

É possível modificar o que está sendo usado como o projeto ativo atual ao transmitir a sinalização --project com um comando da CLI. Veja um exemplo: dá para configurar a CLI para ser executada em um projeto do Firebase em que o alias de staging foi atribuído. Se quiser executar apenas um comando no projeto do Firebase em que o alias de prod foi atribuído, você pode executar firebase deploy --project=prod, por exemplo.

Controle de origem e aliases do projeto

De modo geral, é necessário incluir o arquivo .firebaserc no controle de origem para que sua equipe possa compartilhar aliases do projeto. Normalmente, no entanto, não é necessário incluir o arquivo .firebaserc para projetos de código aberto ou modelos iniciais.

Caso você tenha um projeto de desenvolvimento somente para uso pessoal, transmita a sinalização --project a cada comando ou execute firebase use PROJECT_ID sem atribuir um alias para o projeto do Firebase.

Disponibilizar e testar seu projeto do Firebase localmente

Veja e teste seu projeto do Firebase em URLs hospedados localmente antes de implantá-lo na produção. Se você quiser testar somente determinados recursos, use uma lista separada por vírgulas em uma sinalização no comando firebase serve.

Execute o comando a seguir na raiz do diretório local do seu projeto se quiser realizar alguma destas tarefas:

firebase serve --only hosting

Emular seu projeto usando as funções HTTP locais

Execute qualquer um dos seguintes comandos no diretório do seu projeto para emular esse projeto usando funções HTTP locais:

  • Para emular funções HTTP e hospedagem para testes em URLs locais, use um dos comandos a seguir:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Para emular somente funções HTTP, use o seguinte comando:

    firebase serve --only functions

Testar usando outros dispositivos locais

Por padrão, firebase serve apenas responde às solicitações de localhost. Isso significa que você poderá acessar seu conteúdo hospedado na Web a partir do navegador no seu computador, mas não em outros dispositivos na rede. Se quiser testar usando outros dispositivos locais, use a sinalização --host, como:

firebase serve --host 0.0.0.0  // accepts requests to any host

Implantar em um projeto do Firebase

Com a CLI do Firebase, você gerencia a implantação de código e recursos no projeto do Firebase, incluindo:

  • Lançamentos de sites Firebase Hosting
  • Cloud Functions for Firebase novo, atualizado ou existente
  • Esquemas e conectores novos ou atualizados para Firebase Data Connect
  • Regras de Firebase Realtime Database
  • Regras de Cloud Storage for Firebase
  • Regras de Cloud Firestore
  • Índices de Cloud Firestore

Para implantar em um projeto do Firebase, execute o seguinte comando no diretório do seu projeto:

firebase deploy

Como alternativa, é possível adicionar um comentário a cada uma das implantações. Ele será exibido com as outras informações de implantação na página do Firebase Hosting do seu projeto. Exemplo:

firebase deploy -m "Deploying the best new feature ever."

Ao usar o comando firebase deploy, esteja ciente do seguinte:

  • Para implantar recursos a partir de um diretório de projeto, é necessário que ele tenha um arquivo firebase.json. Esse arquivo é criado automaticamente com o comando firebase init.

  • Por padrão, firebase deploy cria uma versão para todos os recursos implantáveis no diretório do projeto. Para implantar serviços ou recursos específicos do Firebase, use a implantação parcial.

Conflitos de implantação nas regras de segurança

Para Firebase Realtime Database, Cloud Storage for Firebase e Cloud Firestore, é possível definir regras de segurança no diretório de projeto local ou no console Firebase.

Outra opção para evitar conflitos de implantação é usar a implantação parcial e definir regras apenas no Console do Firebase.

Cotas de implantação

É possível, embora improvável, que você exceda uma cota que limita a taxa ou o volume das operações de implantação do Firebase. Ao implantar muitas funções, por exemplo, talvez você receba uma mensagem de erro HTTP 429 Quota. Para resolver esses problemas, use a implantação parcial.

Reverter uma implantação

É possível reverter uma implantação do Firebase Hosting na página Firebase Hosting do seu projeto selecionando a ação Reverter para a versão desejada.

No momento, não é possível reverter versões de regras de segurança para Firebase Realtime Database, Cloud Storage for Firebase ou Cloud Firestore.

Implantar serviços específicos do Firebase

Se você quiser implantar apenas serviços ou recursos específicos do Firebase, use uma lista separada por vírgulas em uma sinalização no comando firebase deploy. Por exemplo, o comando a seguir implanta o conteúdo Firebase Hosting e as regras de segurança Cloud Storage.

firebase deploy --only hosting,storage

A tabela a seguir exibe os serviços e recursos disponíveis para implantação parcial. Os nomes nas sinalizações correspondem às chaves no seu arquivo de configuração firebase.json.

Sintaxe de sinalização Serviço ou recurso implantado
--only hosting Conteúdo Firebase Hosting
--only database Firebase Realtime Database regras
--only dataconnect Esquemas e conectores Firebase Data Connect
--only storage Cloud Storage for Firebase regras
--only firestore Regras e índices do Cloud Firestore para todos os bancos de dados configurados
--only functions Cloud Functions for Firebase (versões mais específicas dessa flag são possíveis)

Implantar funções específicas

É possível visar funções específicas ao fazer a implantação. Exemplo:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

Outra opção é juntar funções em grupos de exportação no arquivo /functions/index.js. Assim, dá para implantar várias funções usando um único comando.

Por exemplo, é possível gravar as seguintes funções para definir um groupA e um groupB:

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

Neste exemplo, um arquivo functions/groupB.js separado contém funções adicionais que definem especificamente as funções no groupB. Exemplo:

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

Neste exemplo, é possível implantar todas as funções groupA ao executar o seguinte comando no diretório do projeto:

firebase deploy --only functions:groupA

Ou você pode direcionar uma função específica dentro de um grupo. Para isso, execute o seguinte comando:

firebase deploy --only functions:groupA.function1,groupB.function4

Excluir funções

A CLI do Firebase é compatível com os comandos e opções a seguir para excluir funções implantadas anteriormente:

  • Exclui todas as funções que correspondem ao nome especificado em todas as regiões:

    firebase functions:delete FUNCTION-1_NAME

  • Exclui uma função especificada executada em uma região que não seja padrão:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • Exclui mais de uma função:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • Exclui um grupo de funções especificado:

    firebase functions:delete GROUP_NAME

  • Ignora o prompt de confirmação:

    firebase functions:delete FUNCTION-1_NAME --force

Configurar tarefas de pré e pós-implantação com script

É possível conectar scripts de shell ao comando firebase deploy para desempenhar tarefas de pré ou pós-implantação. Por exemplo, um script de pré-implantação poderia transcompilar o código TypeScript em JavaScript, e um hook de pós-implantação poderia notificar os administradores sobre o novo conteúdo do site implantado no Firebase Hosting.

Para configurar hooks de pré ou pós-implantação, adicione scripts bash no arquivo de configuração firebase.json. É possível definir scripts curtos diretamente no arquivo firebase.json ou usar outros arquivos que estão no diretório do projeto.

Por exemplo, o script a seguir é a expressão firebase.json para uma tarefa de pós-implantação que envia uma mensagem do Slack após uma implantação bem-sucedida no Firebase Hosting.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

O arquivo de script messageSlack.sh fica no diretório do projeto e tem esta aparência:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

É possível configurar hooks de predeploy e postdeploy para qualquer um dos recursos a serem implantados. Observe que executar o comando firebase deploy funciona como gatilho para todas as tarefas de pré e pós-implantação definidas no arquivo firebase.json. Para executar somente aquelas associadas a um serviço específico do Firebase, use comandos de implantação parcial.

Os hooks predeploy e postdeploy imprimem a resposta padrão e os streams de erro dos scripts no terminal. Em casos de falha, observe o seguinte:

  • Se um hook de pré-implantação não for concluído conforme o esperado, a implantação será cancelada.
  • Se ocorrer falhas na implantação por qualquer motivo, os hooks de pós-implantação não serão acionados.

Variáveis de ambiente

As variáveis de ambiente a seguir estão disponíveis nos scripts em execução nos hooks de pré e pós-implantação:

  • $GCLOUD_PROJECT: a ID do projeto ativo.
  • $PROJECT_DIR: o diretório raiz que contém o arquivo firebase.json.
  • $RESOURCE_DIR: (somente para scripts hosting e functions). O local do diretório que contém os recursos Hosting ou Cloud Functions a serem implantados.

Gerenciar várias instâncias Realtime Database

Um projeto do Firebase pode ter várias instâncias Firebase Realtime Database. Por padrão, os comandos da CLI interagem com a instância padrão do banco de dados.

No entanto, é possível interagir com uma instância de banco de dados que não seja padrão usando a sinalização --instance DATABASE_NAME. Os comandos a seguir aceitam a sinalização --instance:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

Referência de comandos

Comandos administrativos da CLI

Comando Descrição
help Exibe informações de ajuda sobre a CLI ou comandos específicos.
init Associa e define um novo projeto do Firebase no diretório atual. Este comando cria um arquivo de configuração firebase.json no diretório atual.
login Autentica a CLI para sua conta do Firebase. Requer acesso a um navegador da Web.
Para fazer login na CLI em ambientes remotos que não permitem acesso a localhost, use a sinalização --no-localhost.
login:ci Gera um token de autenticação a ser usado em ambientes não interativos.
logout Sai da CLI a partir da sua conta do Firebase.
open Abre um navegador para recursos relevantes do projeto.
projects:list Exibe todos os projetos do Firebase aos quais você tem acesso.
use Configura o projeto atual do Firebase para a CLI.
Gerencia aliases do projeto.

Comandos de gerenciamento de projetos

Comando Descrição
Gerenciamento de projetos do Firebase
projects:addfirebase Adiciona recursos do Firebase a um projeto Google Cloud.
projects:create Cria um novo projeto Google Cloud e adiciona recursos do Firebase a ele.
projects:list Exibe todos os projetos do Firebase aos quais você tem acesso.
Gerenciamento de apps do Firebase (iOS, Android, Web)
apps:create Cria um novo aplicativo do Firebase no projeto ativo.
apps:list Exibe os aplicativos do Firebase registrados no projeto ativo.
apps:sdkconfig Imprime a configuração dos serviços do Google de um aplicativo do Firebase.
setup:web Obsoleto. Em vez dele, use apps:sdkconfig e especifique web como argumento da plataforma.
Mostra a configuração dos serviços do Google de um app da Web do Firebase.
Gerenciamento de hashes de certificado SHA (somente Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Adiciona o hash de certificado SHA específico ao aplicativo do Firebase para Android especificado.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Exclui o hash do certificado SHA específico do aplicativo do Firebase para Android especificado.
apps:android:sha:list \
FIREBASE_APP_ID
Lista os hashes de certificado SHA para o aplicativo do Firebase para Android especificado.

Implantação e desenvolvimento local

Com esses comandos, você faz a implantação e interage com o site Firebase Hosting.

Comando Descrição
deploy Implanta códigos e recursos do diretório do projeto para o projeto ativo. Para Firebase Hosting, é necessário um arquivo de configuração firebase.json.
serve Inicia um servidor da Web local com a configuração Firebase Hosting. Para Firebase Hosting, é necessário um arquivo de configuração firebase.json.

App Distribution commands

Comando Descrição
appdistribution:distribute \
--app FIREBASE_APP_ID
Disponibiliza a versão criada para os examinadores.
appdistribution:testers:add Adiciona testadores ao projeto.
appdistribution:testers:remove Remove os testadores do projeto.

App Hosting commands

Comando Descrição
apphosting:backends:create \
--project PROJECT_ID
--location REGION --app APP_ID
Cria a coleção de recursos gerenciados vinculados a uma única base de código que compreende um back-end App Hosting. Opcionalmente, especifique um app da Web do Firebase atual pelo ID do app do Firebase.
apphosting:backends:get \ BACKEND_ID
--project PROJECT_ID
--location REGION
Recupera detalhes específicos, incluindo o URL público, de um back-end.
apphosting:backends:list \
--project PROJECT_ID
Recupera uma lista de todos os back-ends ativos associados a um projeto.
firebase apphosting:backends:delete \ BACKEND_ID
--project PROJECT_ID
--location REGION
Exclui um back-end do projeto.
apphosting:secrets:set \
KEY --project PROJECT_ID
--location REGION --data-file Data file
Armazena material confidencial no Secret Manager. Opcionalmente, forneça um caminho de arquivo para ler dados confidenciais. Defina como _ para ler dados confidenciais da entrada padrão.
apphosting:secrets:grantaccess \
KEY --project PROJECT_ID BACKEND_ID
--location REGION
Concede à conta de serviço de back-end acesso ao secret fornecido para que ele possa ser acessado por App Hosting no momento de criação ou execução.
apphosting:secrets:describe \
KEY --project PROJECT_ID
Recebe os metadados de um secret e as versões dele.
firebase apphosting:secrets:access \
KEY[@version]
--project PROJECT_ID
Acessa um valor de secret com base no secret e na versão dele. O padrão é acessar a versão mais recente.

Comandos de gerenciamento de usuários Authentication

Comando Descrição
auth:export Exporta as contas de usuários do projeto ativo para um arquivo JSON ou CSV. Para mais detalhes, consulte a página auth:import e auth:export.
auth:import Importa as contas de usuários de um arquivo JSON ou CSV para o projeto ativo. Para mais detalhes, consulte a página auth:import e auth:export.

Cloud Firestore commands

Comando Descrição
firestore:locations

Liste os locais disponíveis para seu banco de dados Cloud Firestore.

firestore:databases:create DATABASE_ID

Crie uma instância de banco de dados no modo nativo no seu projeto do Firebase.

O comando usa as seguintes sinalizações:

  • --location <nome da região> para especificar o local da implantação do banco de dados. É possível executar firebase firestore:locations para listar os locais disponíveis. Obrigatório.
  • --delete-protection <deleteProtectionState> para permitir ou impedir a exclusão do banco de dados especificado. Os valores válidos são ENABLED ou DISABLED. O valor padrão é DISABLED.
  • --point-in-time-recovery <PITRState> para definir se a recuperação pontual está ativada. Os valores válidos são ENABLED ou DISABLED. O valor padrão é DISABLED. Opcional.
firestore:databases:list

Liste bancos de dados no seu projeto do Firebase.

firestore:databases:get DATABASE_ID

Recebe a configuração do banco de dados para um banco de dados especificado no seu projeto do Firebase.

firestore:databases:update DATABASE_ID

Atualizar a configuração de um banco de dados especificado no projeto do Firebase.

Pelo menos um sinalizador é necessário. O comando usa as seguintes sinalizações:

  • --delete-protection <deleteProtectionState> para permitir ou impedir a exclusão do banco de dados especificado. Os valores válidos são ENABLED ou DISABLED. O valor padrão é DISABLED.
  • --point-in-time-recovery <PITRState> para definir se a recuperação pontual está ativada. Os valores válidos são ENABLED ou DISABLED. O valor padrão é DISABLED. Opcional.
firestore:databases:delete DATABASE_ID

Exclua um banco de dados no seu projeto do Firebase.

firestore:indexes

Liste índices para um banco de dados no seu projeto do Firebase.

O comando usa a seguinte sinalização:

  • --database DATABASE_ID para especificar o nome do banco de dados para listar os índices. Se não for fornecido, os índices serão listados para o banco de dados padrão.
firestore:delete

Exclui documentos do banco de dados do projeto ativo. Usando a CLI, é possível excluir todos os documentos de uma coleção de forma recorrente.

Excluir dados Cloud Firestore com a CLI gera custos de leitura e exclusão. Para mais informações, consulte Noções básicas sobre o faturamento do Cloud Firestore.

O comando usa a seguinte sinalização:

  • --database DATABASE_ID para especificar o nome do banco de dados do qual os documentos são excluídos. Se não for especificado, os documentos serão excluídos do banco de dados padrão. Opcional.

Cloud Functions for Firebase commands

Comando Descrição
functions:config:clone Clona o ambiente de outro projeto no projeto ativo do Firebase.
functions:config:get Recupera os valores de configuração atuais do Cloud Functions do projeto ativo.
functions:config:set Armazena os valores de configuração do ambiente de execução do Cloud Functions do projeto ativo.
functions:config:unset Remove os valores da configuração do ambiente de execução do projeto ativo.
functions:log Lê os registros da Cloud Functions implantada.

Para mais informações, consulte a documentação de configuração do ambiente.

Crashlytics commands

Comando Descrição
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Gera um ID de arquivo de mapeamento exclusivo no arquivo (XML) de recursos do Android especificado.
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Faz upload de um arquivo (TXT) de mapeamento compatível com o Proguard para esse app e o associa ao ID do arquivo de mapeamento declarado no arquivo (XML) de recursos do Android especificado.
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Gera um arquivo de símbolo compatível com Crashlytics para falhas de biblioteca nativa no Android e faz upload dele nos servidores do Firebase

Data Connect commands

Esses comandos e os casos de uso deles são abordados em mais detalhes no guia de referência da CLI Data Connect.

Comando Descrição
dataconnect:services:list Lista todos os serviços Data Connect implantados no seu projeto do Firebase.
dataconnect:sql:diff \
SERVICE_ID
Para o serviço especificado, mostra as diferenças entre um esquema Data Connect local e o esquema do banco de dados do Cloud SQL.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Migra o esquema do banco de dados do Cloud SQL para corresponder ao esquema Data Connect local.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Concede o papel do SQL ao e-mail da conta de serviço ou do usuário especificado.
Para a flag --role, o papel do SQL a ser concedido é um destes: owner, writer ou reader.
Para a flag --email, forneça o endereço de e-mail do usuário ou da conta de serviço a que você quer conceder o papel.
dataconnect:sdk:generate Gera SDKs tipados para seus conectores Data Connect.

Extensions commands

Comando Descrição
ext Mostra informações sobre como usar comandos Firebase Extensions.
Lista as instâncias de extensão do projeto ativo.
ext:configure \
EXTENSION_INSTANCE_ID
Reconfigura os valores de parâmetro de uma instância de extensão no manifesto de extensões.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Imprime informações detalhadas sobre uma extensão.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Adiciona uma nova instância de uma extensão ao seu manifesto de extensões.
ext:list Lista todas as instâncias de extensão instaladas em um projeto do Firebase.
Imprime o ID da instância para cada extensão.
ext:uninstall \
EXTENSION_INSTANCE_ID
Remove uma extensão de extensão do seu manifesto de extensões.
ext:update \
EXTENSION_INSTANCE_ID
Atualiza uma instância de extensão para a versão mais recente no seu manifesto de extensões.
ext:export Exporta todas as instâncias de extensão instaladas do projeto para o manifesto de extensões.

Comandos do editor Extensions

Comando Descrição
ext:dev:init Inicializa uma base de código para uma nova extensão no diretório atual.
ext:dev:list \
PUBLISHER_ID
Imprime uma lista de todas as extensões enviadas por um editor.
ext:dev:register Registra um projeto do Firebase como um projeto de editor de extensões.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Descontinua versões de extensão que correspondem ao predicado de versão.
O predicado de versão pode ter uma única versão (como 1.0.0) ou um intervalo de versões (como >1.0.0).
Sem um predicado de versão, é necessário descontinuar todas as versões dessa extensão.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Cancela a descontinuação das versões de extensão que correspondem ao predicado de versão.
Um predicado de versão pode ter uma única versão (como 1.0.0) ou um intervalo de versões (como >1.0.0).
Sem um predicado de versão, é necessário cancelar a descontinuação de todas as versões dessa extensão.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Faz o upload de uma nova versão de uma extensão.
ext:dev:usage \
PUBLISHER_ID
Mostra as contagens de instalações e as métricas de uso das extensões enviadas por um editor.

Hosting commands

Comando Descrição
hosting:disable

Interrompe a veiculação de tráfego Firebase Hosting para o projeto ativo do Firebase.

O URL do seu projeto do Hosting exibirá a mensagem “Site não encontrado” depois da execução deste comando.

Gerenciamento de sites Hosting
firebase hosting:sites:create \
SITE_ID

Cria um novo site do Hosting no projeto ativo do Firebase usando o SITE_ID especificado.

(Opcional) Especifique um app da Web do Firebase atual para associar ao novo site ao transmitir a seguinte sinalização: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Exclui o site Hosting especificado

A CLI exibe um prompt de confirmação antes da exclusão do site.

(Opcional) Pule a solicitação de confirmação ao transmitir as seguintes sinalizações: -f ou --force

firebase hosting:sites:get \
SITE_ID

Recupera informações sobre o site Hosting especificado

firebase hosting:sites:list

Lista todos os sites do Hosting para o projeto ativo do Firebase

Gerenciamento dos canais de visualização
firebase hosting:channel:create \
CHANNEL_ID

Cria um novo canal de visualização no site padrão do Hosting usando o CHANNEL_ID especificado.

Esse comando não é implantado no canal.

firebase hosting:channel:delete \
CHANNEL_ID

Exclui o canal de visualização especificado.

Não é possível excluir o canal ativo de um site.

firebase hosting:channel:deploy \
CHANNEL_ID

Implanta o conteúdo e a configuração do Hosting no canal de visualização especificado.

Se o canal de visualização ainda não existir, esse comando criará o canal no site padrão do Hosting antes de implantar no canal.

firebase hosting:channel:list Lista todos os canais (incluindo o canal "ativo") no site padrão do Hosting.
firebase hosting:channel:open \
CHANNEL_ID
Abre um navegador no URL do canal especificado ou retornará o URL se não for possível abrir em um navegador.
Clonagem de versões
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona a última versão implantada no canal "de origem" especificado para o canal "de destino" escolhido.

Esse comando também implanta no canal de destino especificado. Se o canal de destino ainda não existe, esse comando cria um novo canal de visualização no site de destino do Hosting antes de fazer a implantação no canal.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona a versão especificada para o canal de destino escolhido.

Esse comando também implanta no canal de destino especificado. Se o canal de destino ainda não existe, esse comando cria um novo canal de visualização no site de destino do Hosting antes de fazer a implantação no canal.

O VERSION_ID está disponível no painel Hosting do console Firebase.

Realtime Database commands

É possível criar sua instância inicial padrão do Realtime Database no console Firebase ou usando o fluxo de trabalho geral firebase init ou o fluxo firebase init database específico.

Depois de criar as instâncias, é possível gerenciá-las conforme discutido em Gerenciar várias instâncias do Realtime Database.

Comando Descrição
database:get Busca dados do banco de dados do projeto ativo e os exibe como JSON. Suporta consultas em dados indexados.
database:instances:create Cria uma instância de banco de dados com um nome de instância especificado. Aceita a opção --location para criar um banco de dados em uma região especificada. Para usar nomes de regiões com essa opção, consulte selecionar locais para seu projeto. Se não houver nenhuma instância de banco de dados no projeto atual, você precisará executar o fluxo firebase init para criar uma instância.
database:instances:list Lista todas as instâncias de banco de dados para este projeto. Aceita a opção --location para listar bancos de dados em uma região especificada. Para ver os nomes das regiões a serem usados com essa opção, consulte selecionar locais para seu projeto.
database:profile Cria um perfil de operações no banco de dados do projeto ativo. Para mais detalhes, consulte os tipos de operação Realtime Database.
database:push Envia dados novos para uma lista em um local especificado no banco de dados do projeto ativo. Recebe entradas de um arquivo, sejam elas padrão ou argumentos da linha de comando.
database:remove Exclui todos os dados em um local especificado no banco de dados do projeto ativo.
database:set Substitui todos os dados em um local especificado no banco de dados do projeto ativo. Recebe entradas de um arquivo STDIN ou de um argumento da linha de comando.
database:update Faz uma atualização parcial em um local especificado no banco de dados do projeto ativo. Recebe entradas de um arquivo, sejam elas padrão ou argumentos da linha de comando.

Remote Config commands

Comando Descrição
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Lista as 10 versões mais recentes do modelo. Especifique 0 para retornar todas as versões ou, como alternativa, transmita a opção --limit para limitar o número de versões retornadas.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Recebe o modelo por versão (o padrão é a versão mais recente) e coloca os grupos de parâmetros, os parâmetros, os nomes das condições e a versão em uma tabela. Como alternativa, é possível gravar a saída em um arquivo especificado com -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Reverte o modelo Remote Config para um número especificado de uma versão anterior ou reverte para a versão anterior mais recente (versão atual -1). A menos que --force seja transmitido, aparecerá uma mensagem Y/N pedindo para você confirmar a reversão.