Referencia de comandos de Firebase CLI para Data Connect

La CLI de Firebase es una herramienta que te permite administrar y configurar productos y servicios de Firebase desde la línea de comandos.

La CLI proporciona comandos que se pueden usar para realizar una variedad de tareas de Data Connect, como crear un proyecto Data Connect nuevo, inicializar un directorio de trabajo local correspondiente, configurar el emulador Data Connect, enumerar recursos Data Connect, generar SDKs de cliente y mucho más.

Comandos de configuración

Agrega Data Connect a un proyecto de Firebase

firebase init

Usa firebase init para configurar una nueva configuración de proyecto local. Este flujo de trabajo crea o actualiza los archivos de configuración de Firebase en tu directorio.

firebase init

El flujo de firebase init te guía para configurar un servicio y una base de datos, y, de manera opcional, instalar el emulador de Data Connect y configurar los SDKs generados.

Configuración del servicio y la base de datos

Si seleccionas dataconnect para la configuración del producto, la CLI te solicitará un nombre y una ubicación de servicio nuevos, y si deseas vincular una instancia existente de Cloud SQL para PostgreSQL o crear una nueva.

Si se vincula una instancia existente, la CLI busca parámetros de configuración compatibles, como la autenticación de IAM y las direcciones IP públicas.

Configuración de Local Emulator Suite

El flujo de CLI ofrece configurar emuladores, incluido el emulador de Data Connect.

Comandos del emulador de Data Connect

Inicia el emulador de Data Connect

emulators:start/exec

firebase emulators:start/exec

Usa la versión Local Emulator Suite del emulador de Data Connect en modo interactivo con start o en modo no interactivo basado en secuencias de comandos con exec.

Comandos de administración de esquemas y conectores

En esta sección, se incluye información de referencia de la CLI para los comandos que usas para administrar esquemas y conectores.

Para obtener casos de uso y prácticas recomendadas relacionados con estos comandos, consulta la guía de administración de esquemas y conectores.

Implementa recursos de esquemas y conectores

deploy

firebase deploy

Este comando implementa recursos para los servicios de Data Connect indexados en firebase.json. Si es necesario, se realiza una migración de esquemas.

Comando Descripción

firebase deploy

Marca Descripción

–-only dataconnect

Implementa esquemas y conectores para todos los servicios de Data Connect de este proyecto, pero no implementes otros recursos de productos de Firebase.

–-solo dataconnect:serviceId

Implementa el esquema y los conectores para el servicio de Data Connect especificado.

–-only dataconnect:serviceId:connectorId

Implementa un solo conector para el servicio de Data Connect especificado.

–-only dataconnect:serviceId:schema

Implementa el esquema del servicio de Data Connect especificado.

Con las marcas –-only, puedes pasar valores separados por comas para implementar cualquier subconjunto de recursos que desees.

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

Cómo enumerar los servicios, los esquemas y los conectores de Data Connect

dataconnect:services:list

firebase dataconnect:services:list

Este comando imprime información básica sobre los servicios, los esquemas y los conectores implementados en un proyecto.

Compara y migra esquemas de SQL

dataconnect:sql:diff

firebase dataconnect:sql:diff

Este comando compara el esquema local de un servicio con el esquema actual de la base de datos de Cloud SQL correspondiente. Imprime los comandos que se ejecutarían para migrar la base de datos a tu nuevo esquema.

Comando Descripción

firebase dataconnect:sql:diff

Marca o parámetro Descripción

serviceId

Especifica el servicio. Si se omite, se imprime la diferencia de todos los servicios en firebase.json.

dataconnect:sql:migrate

firebase dataconnect:sql:migrate

Este comando aplica los cambios de esquema local a la base de datos de Cloud SQL de un servicio.

Cuando configuras un nuevo proyecto Data Connect local, con el archivo dataconnect.yaml predeterminado, el comportamiento del comando dataconect:sql:migrate es solicitarte los cambios obligatorios y, luego, los cambios opcionales, antes de ejecutarlos. Puedes modificar este comportamiento para incluir o ignorar siempre los cambios opcionales actualizando la configuración de dataconnect.yaml, como se explica en Cómo migrar un esquema en modo estricto o compatible.

En los entornos interactivos, la CLI muestra cada instrucción SQL de migración (y si es destructiva) y solicita los cambios que deseas aplicar. Pasar la marca --force equivale a aceptar todas las instrucciones.

En entornos no interactivos:

  • Sin --force, solo se realizan cambios no destructivos. Si hay cambios destructivos, la CLI se aborta sin realizar cambios.
  • con --force, se realizan todos los cambios. Si esto incluye cambios destructivos, se imprimen y se te pregunta si quieres continuar, a menos que se proporcione la marca --force.
Comando Descripción

firebase dataconnect:sql:migrate

Marca Descripción

serviceId

Migra la base de datos del servicio especificado. El serviceId se infiere si tu proyecto tiene un solo servicio.

–-force

Aceptar automáticamente los mensajes

Al igual que con otras marcas --only, puedes proporcionar varios servicios separados por comas.

Cómo migrar un esquema en modo estricto o compatible

Las migraciones de esquemas Data Connect tienen dos modos de validación de esquemas diferentes: estricto y compatible. La validación del modo estricto requiere que el esquema de la base de datos coincida exactamente con el esquema de la aplicación antes de que se pueda implementar este último. La validación del modo de compatibilidad requiere que el esquema de la base de datos sea compatible con el esquema de la aplicación, lo que significa que los elementos de la base de datos que no usa el esquema de la aplicación no se modifican.

Estos modos de validación de esquemas y las prácticas recomendadas para la migración de esquemas se describen en la guía de administración de esquemas y conectores.

El modo de validación se define con la clave schemaValidation en el archivo dataconnect.yaml. Si no se especifica schemaValidation, la CLI aplica cambios compatibles y te solicita confirmación antes de ejecutar cambios estrictos. Consulta la referencia de configuración.

Comandos del SDK

Genera SDKs

dataconnect:sdk:generate

firebase dataconnect:sdk:generate

Este comando genera los SDKs tipificados declarados en connector.yaml.

Consulta también las guías para trabajar con los SDKs web, los SDKs de Android y los SDKs de iOS.

Comando Descripción

firebase dataconnect:sdk:generate

Marca Descripción

–-watch

Mantiene el proceso en ejecución y genera SDKs nuevos cada vez que guardas cambios en tus archivos de GQL de esquema y conector.

Si la generación falla, los errores se imprimirán en stdout, no se cambiará el código generado y el comando seguirá ejecutándose.

–-only connectorId:platform

Genera solo SDKs para una sola plataforma y un solo conector.

Con las marcas –only, puedes pasar valores separados por comas.

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

Comandos de administración de Cloud SQL

Otorga roles de SQL para Cloud SQL

dataconnect:sql:grant

firebase dataconnect:sql:grant

Data Connect funciona en tu propia instancia de PostgreSQL alojada en Cloud SQL. En algunos casos, es posible que quieras acceder a tu base de datos directamente para consultar o actualizar los datos que generan tus apps de Data Connect. Para ello, deberás otorgar uno de los roles definidos en esta sección al usuario o la cuenta de servicio necesarios.

Para obtener detalles sobre los roles otorgados, consulta Roles de usuario de PostgreSQL.

Rol Rol de SQL Permisos Uso Otorgable
lector firebasereader_<db_name>_<schema_name> Acceso de solo lectura a la base de datos.

Puede realizar operaciones SELECT en todas las tablas del esquema especificado.
Ideal para usuarios o servicios que requieren la recuperación de datos, pero no su modificación.
escritor firebasewriter_<db_name>_<schema_name> Acceso de lectura y escritura a la base de datos.

Puede realizar operaciones SELECT, INSERT, UPDATE, DELETE y TRUNCATE en todas las tablas del esquema.
Adecuada para usuarios o servicios que necesitan modificar datos dentro de la base de datos.
propietario firebaseowner_<db_name>_<schema_name> Es el propietario del esquema.

Tiene todos los privilegios en todas las tablas y secuencias del esquema.
Este rol, junto con el rol de IAM roles/cloudsql.client, otorga permiso para realizar la migración en la base de datos.

Por ejemplo, cuando llames a firebase dataconnect:sql:migrate.
superusuario cloudsqlsuperuser Rol de superusuario integrado con privilegios completos en la base de datos

Además de los permisos de propietario, puede crear esquemas, descartar esquemas, instalar extensiones y realizar cualquier otra tarea administrativa.

Se accede a él en la CLI si accedes como "firebasesuperuser".
Es obligatorio para instalar extensiones, crear el esquema inicial y otorgar cualquiera de los roles de SQL otorgables a otros usuarios.

Si un usuario que no es administrador necesita privilegios de superusuario, la migración fallará y le pedirá al usuario que le solicite al administrador de la base de datos (es decir, un usuario con roles/cloudsql.admin) que ejecute los comandos SQL con privilegios.
Se otorga a los usuarios con roles/cloudsql.admin y no se puede otorgar directamente desde la CLI de Firebase.
Comando Descripción

firebase dataconnect:sql:grant

Marca o parámetro Descripción

-R, --role rol

El rol de SQL que se otorgará, uno de los siguientes: propietario, escritor o lector.

-E, --email email_address

Es el correo electrónico de un usuario o una cuenta de servicio al que se le otorgará el rol.

Opciones globales

Las siguientes opciones globales se aplican a todos los comandos:

  • --json cambia el resultado de la CLI a JSON para que otras herramientas lo analicen.
  • --noninteractive y --interactive anulan, según sea necesario, la detección automática de entornos que no son de TTY.