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 establecer 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 quieres vincular una instancia existente de Cloud SQL para PostgreSQL o crear una instancia 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
emuladores:iniciar/ejecutar
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
Esta sección contiene información de referencia de la CLI para los comandos que usas a fin de 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 esquema y conector
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 | |
---|---|---|
implementación de Firebase |
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. | |
–-only 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 cambios de esquema locales 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 |
Migrar 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.
Migra 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 prácticas recomendadas para la migración de esquemas se tratan 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 antes de ejecutar cualquier cambio estricto. Consulta la referencia de configuración.
Comandos del SDK
Genera SDKs
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
Este comando genera los SDKs escritos 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 |
–-mirar |
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 desees acceder a tu base de datos directamente para consultar o actualizar los datos que generan tus apps de Data Connect. Para hacer esto, deberás otorgar uno de los roles definidos en esta sección al usuario o a la cuenta de servicio que necesites.
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. | Sí |
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. | Sí |
propietario | firebaseowner_<db_name>_<schema_name> |
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 . |
Sí |
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 va a otorgar, puede ser propietario, escritor o lector. | |
-E, --email email_address |
Es la dirección de correo electrónico de un usuario o una cuenta de servicio a la 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.- Anulan
--noninteractive
y--interactive
, según sea necesario, para la detección automática de entornos que no son TTY.