Ir al contenido

Conector Firebase

El conector Firebase permite escribir datos en Google Cloud Firestore, una base de datos NoSQL en la nube flexible y escalable para desarrollo móvil, web y de servidor.

Tipos de Conector:

  • FirebaseWriter - Escribe documentos en colecciones de Firestore

Escribe datos en una colección de Firestore:

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "base64",
"data": "<base64-encoded-service-account-json>"
},
"projectId": "my-firebase-project",
"collection": "sensor_readings"
}
}

Conéctate a una base de datos Firestore específica (para proyectos multi-base de datos):

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "path",
"data": "/path/to/service-account.json"
},
"projectId": "my-firebase-project",
"databaseName": "production-db",
"collection": "iot_events"
}
}
ParámetroTipoRequeridoDescripción
credentialsFileEncodedFileArchivo de credenciales de cuenta de servicio
projectIdstringID del proyecto Firebase/GCP
collectionstringNombre de la colección Firestore
databaseNamestringNombre de base de datos Firestore (para proyectos multi-base de datos)

El parámetro credentialsFile soporta dos modos:

{
"credentialsFile": {
"mode": "base64",
"data": "eyJ0eXBlIjoic2VydmljZV9hY2NvdW50Ii..."
}
}
{
"credentialsFile": {
"mode": "path",
"data": "/etc/meddle/firebase-credentials.json"
}
}
  1. Ve a la Consola de Firebase
  2. Selecciona tu proyecto → Configuración del Proyecto → Cuentas de Servicio
  3. Haz clic en “Generar nueva clave privada”
  4. Descarga el archivo JSON
  5. Usa la ruta del archivo o codifica el contenido en base64

Cada payload de datos se agrega como un nuevo documento en la colección especificada:

{
"temperature": 25.5,
"pressure": 101.3,
"humidity": 60,
"timestamp": 1234567890
}

Firestore genera automáticamente un ID de documento único para cada entrada.

Almacena lecturas de sensores en Firestore:

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "path",
"data": "/config/firebase-sa.json"
},
"projectId": "iot-monitoring",
"collection": "sensor_data"
}
}

Registra eventos del sistema en Firestore:

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "base64",
"data": "<credentials>"
},
"projectId": "event-tracker",
"collection": "system_events"
}
}

Escribe en una base de datos específica en un proyecto multi-base de datos:

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "path",
"data": "/config/firebase-sa.json"
},
"projectId": "enterprise-app",
"databaseName": "analytics-db",
"collection": "metrics"
}
}

Soluciones:

  • Verifica que el archivo de credenciales sea JSON válido
  • Comprueba que el ID del proyecto coincida con tu proyecto Firebase
  • Asegúrate de que la cuenta de servicio tenga permisos de Firestore
  • Verifica la codificación base64 si usas modo base64

Soluciones:

  • Comprueba que el nombre de la colección sea válido
  • Verifica que las reglas de seguridad de Firestore permitan escrituras
  • Asegúrate de que la cuenta de servicio tenga el rol datastore.user
  • Comprueba cuotas y límites de Firestore

Soluciones:

  • Verifica la conectividad de red hacia Google Cloud
  • Comprueba que el firewall permita HTTPS saliente (puerto 443)
  • Asegúrate de que las credenciales no hayan expirado o sido revocadas
  1. Usa Cuentas de Servicio: Nunca uses credenciales de usuario en producción
  2. Limita los Permisos: Otorga solo los permisos de Firestore necesarios
  3. Organiza las Colecciones: Usa nombres de colección significativos con jerarquía clara
  4. Monitorea el Uso: Rastrea operaciones de lectura/escritura de Firestore para gestión de costos
  5. Protege las Credenciales: Almacena las credenciales de forma segura, nunca las commits al control de versiones
  • MongoDB - Base de datos NoSQL alternativa
  • SQL - Almacenamiento de base de datos relacional
  • InfluxDB - Base de datos de series temporales