Referência de comandos da CLI do Firebase para o Data Connect

A CLI Firebase é uma ferramenta que permite gerenciar e configurar produtos e serviços do Firebase na linha de comando.

A CLI fornece comandos que podem ser usados para realizar várias tarefas do Data Connect, como criar um novo projeto do Data Connect, inicializar um diretório de trabalho local correspondente, configurar o emulador do Data Connect, listar recursos do Data Connect, gerar SDKs de cliente e muito mais.

Configurar comandos

Adicionar Data Connect a um projeto do Firebase

firebase init

Use firebase init para configurar uma nova configuração de projeto local. Esse fluxo de trabalho cria ou atualiza arquivos de configuração do Firebase no diretório.

firebase init

O fluxo firebase init orienta você na configuração de um serviço e um banco de dados, e, opcionalmente, na instalação do emulador Data Connect e na configuração de SDKs gerados.

Configuração do serviço e do banco de dados

Se você selecionar dataconnect para a configuração do produto, a CLI vai solicitar um novo nome e local do serviço e se você quer vincular e criar uma instância do Cloud SQL para PostgreSQL ou criar uma nova.

Se uma instância existente estiver vinculada, a CLI vai verificar se há configurações compatíveis, como a autenticação do IAM e endereços IP públicos.

Configuração do Local Emulator Suite

O fluxo da CLI oferece a configuração de emuladores, incluindo o emulador Data Connect.

Comandos do emulador Data Connect

Inicie o emulador Data Connect

emulators:start/exec

firebase emulators:start/exec

Use a versão Local Emulator Suite do emulador Data Connect no modo interativo com start ou no modo não interativo com script com exec.

Comandos de gerenciamento de esquemas e conectores

Esta seção contém informações de referência da CLI para comandos usados para gerenciar esquemas e conectores.

Para saber como usar casos e práticas recomendadas relacionadas a esses comandos, consulte o guia de gerenciamento de esquemas e conectores.

Implantar recursos de esquema e conector

deploy

firebase deploy

Esse comando implanta recursos para serviços do Data Connect indexados em firebase.json. Uma migração de esquema é realizada, se necessário.

Comando Descrição

firebase deploy

Flag Descrição

–-only dataconnect

Implanta esquemas e conectores para todos os serviços do Data Connect para este projeto, mas não implanta outros recursos de produtos do Firebase.

–-only dataconnect:serviceId

Implante o esquema e os conectores para o serviço do Data Connect especificado.

–-only dataconnect:serviceId:connectorId

Implante um único conector para o serviço do Data Connect especificado.

–-only dataconnect:serviceId:schema

Implante o esquema do serviço do Data Connect especificado.

Com as flags –-only, é possível transmitir valores separados por vírgulas para implantar qualquer subconjunto de recursos.

firebase deploy --only dataconnect:service1:schema,dataconnect:service2

Listar serviços, esquemas e conectores do Data Connect

dataconnect:services:list

firebase dataconnect:services:list

Esse comando mostra informações básicas sobre os serviços, esquemas e conectores implantados em um projeto.

Comparar e migrar esquemas SQL

dataconnect:sql:diff

firebase dataconnect:sql:diff

Esse comando compara o esquema local de um serviço com o esquema atual do banco de dados do Cloud SQL correspondente. Ele mostra os comandos que seriam executados para migrar o banco de dados para o novo esquema.

Comando Descrição

firebase dataconnect:sql:diff

Flag/parâmetro Descrição

serviceId

Especifique o serviço. Se omitido, mostra a diferença de todos os serviços no firebase.json.

dataconnect:sql:migrate

firebase dataconnect:sql:migrate

Esse comando aplica as mudanças de esquema local ao banco de dados do Cloud SQL de um serviço.

Quando você configura um novo projeto Data Connect local com o arquivo dataconnect.yaml padrão, o comportamento do comando dataconect:sql:migrate é solicitar as mudanças necessárias e, em seguida, as opcionais antes de executar as mudanças. É possível modificar esse comportamento para sempre incluir ou ignorar mudanças opcionais atualizando a configuração dataconnect.yaml, conforme discutido em migrar um esquema no modo estrito ou compatível.

Em ambientes interativos, a CLI mostra cada instrução SQL de migração (e se ela é destrutiva) e solicita as mudanças que você quer aplicar. Transmitir a flag --force é equivalente a aceitar todas as solicitações.

Em ambientes não interativos:

  • Sem --force, apenas mudanças não destrutivas são feitas. Se houver mudanças destrutivas, a CLI será abortada sem que nenhuma mudança seja feita.
  • com --force, todas as mudanças são feitas. Se isso incluir mudanças destrutivas, elas serão impressas e você será solicitado a continuar, a menos que a flag --force seja fornecida.
Comando Descrição

firebase dataconnect:sql:migrate

Flag Descrição

serviceId

Migrar o banco de dados para o serviço especificado. O serviceId é inferido se o projeto tiver apenas um serviço.

–-force

Aceitar automaticamente as solicitações.

Assim como com outras flags --only, é possível fornecer vários serviços separados por vírgulas.

Migrar um esquema no modo restrito ou compatível

As migrações de esquema Data Connect têm dois modos diferentes de validação de esquema: strict e compatible. A validação do modo estrito exige que o esquema do banco de dados corresponda exatamente ao esquema do aplicativo antes que o esquema do aplicativo possa ser implantado. A validação do modo compatível exige que o esquema do banco de dados seja compatível com o esquema do aplicativo. Isso significa que os elementos no banco de dados que não são usados pelo esquema do aplicativo não são modificados.

Esses modos de validação de esquema e as práticas recomendadas para migração de esquema são abordados no guia de gerenciamento de esquemas e conectores.

O modo de validação é definido usando a chave schemaValidation no arquivo dataconnect.yaml. Se schemaValidation não for especificado, a CLI vai aplicar mudanças compatíveis e solicitar que você as execute antes de fazer mudanças rígidas. Consulte a referência de configuração.

Comandos do SDK

Gerar SDKs

dataconnect:sdk:generate

firebase dataconnect:sdk:generate

Esse comando gera os SDKs tipados declarados em connector.yaml.

Consulte também os guias para trabalhar com os SDKs da Web, SDKs do Android e SDKs do iOS.

Comando Descrição

firebase dataconnect:sdk:generate

Flag Descrição

--watch

Mantém o processo em execução e gera novos SDKs sempre que você salva mudanças nos arquivos GQL do esquema e do conector.

Se a geração falhar, os erros serão impressos no stdout, o código gerado não será alterado e o comando continuará sendo executado.

–-only connectorId:platform

Gerar SDKs apenas para uma plataforma e um conector.

Com as flags –only, é possível transmitir valores separados por vírgulas.

firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin

Comandos de gerenciamento do Cloud SQL

Conceder papéis do SQL para o Cloud SQL

dataconnect:sql:grant

firebase dataconnect:sql:grant

O Data Connect opera na sua própria instância do PostgreSQL hospedada no Cloud SQL. Em alguns casos, convém acessar o banco de dados diretamente para consultar ou atualizar os dados gerados pelos seus apps Data Connect. Para fazer isso, conceda uma das funções definidas nesta seção ao usuário ou à conta de serviço necessária.

Para saber mais sobre os papéis concedidos, consulte Papéis de usuário do PostgreSQL.

Papel Função SQL Permissões Uso Concedível
leitor firebasereader_<db_name>_<schema_name> Acesso somente leitura ao banco de dados.

Pode realizar operações SELECT em todas as tabelas do esquema especificado.
Ideal para usuários ou serviços que exigem a recuperação de dados, mas não a modificação. Sim
escritor firebasewriter_<db_name>_<schema_name> Acesso de leitura e gravação ao banco de dados.

Pode executar operações SELECT, INSERT, UPDATE, DELETE e TRUNCATE em todas as tabelas do esquema.
Adequado para usuários ou serviços que precisam modificar dados no banco de dados. Sim
proprietário firebaseowner_<db_name>_<schema_name> Proprietário do esquema.

Tem todos os privilégios em todas as tabelas e sequências do esquema.
Esse papel, em combinação com o papel roles/cloudsql.client do IAM, concede permissão para realizar a migração no banco de dados.

Por exemplo, ao chamar firebase dataconnect:sql:migrate.
Sim
superusuário cloudsqlsuperuser Função de superusuário integrada com privilégios totais no banco de dados.

Além das permissões de proprietário, ela pode criar esquemas, excluir esquemas, instalar extensões e realizar outras tarefas administrativas.

Acessado na CLI fazendo login como "firebasesuperuser".
É necessário para instalar extensões, criar o esquema inicial e conceder a qualquer uma das funções SQL concedíveis a outros usuários.

Se um usuário que não é administrador precisar de privilégios de superusuário, a migração vai falhar e solicitar que o usuário peça ao administrador do banco de dados (ou seja, um usuário com roles/cloudsql.admin) para executar os comandos SQL privilegiados.
Concedida a usuários com roles/cloudsql.admin e não pode ser concedida diretamente pela CLI Firebase
Comando Descrição

firebase dataconnect:sql:grant

Flag/parâmetro Descrição

-R, --role role

O papel do SQL a ser concedido: proprietário, escritor ou leitor.

-E, --email email_address

E-mail de um usuário ou de uma conta de serviço para conceder o papel.

Opções globais

As opções globais a seguir se aplicam a todos os comandos:

  • --json alterna a saída da CLI para JSON para análise por outras ferramentas.
  • --noninteractive e --interactive substituem, conforme necessário, a detecção automática de ambientes que não são TTY.