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 Data Connect, inicializar um diretório de trabalho local correspondente, configurar o emulador Data Connect, listar recursos 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 instâncias 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 de 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
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 será 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 que você quiser.
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 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. |
Concedido a usuários com roles/cloudsql.admin e não pode ser concedido 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, gravador 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.