Connettore Firebase
Panoramica
Sezione intitolata “Panoramica”Il connettore Firebase abilita la scrittura di dati su Google Cloud Firestore, un database NoSQL cloud flessibile e scalabile per sviluppo mobile, web e server.
Tipi Connettore:
FirebaseWriter- Scrivi documenti su collezioni Firestore
Firebase Writer
Sezione intitolata “Firebase Writer”Scrivi dati su una collezione Firestore:
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "base64", "data": "<base64-encoded-service-account-json>" }, "projectId": "my-firebase-project", "collection": "sensor_readings" }}Con Database Personalizzato
Sezione intitolata “Con Database Personalizzato”Connettiti a un database Firestore specifico (per progetti multi-database):
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "path", "data": "/path/to/service-account.json" }, "projectId": "my-firebase-project", "databaseName": "production-db", "collection": "iot_events" }}Parametri di Configurazione
Sezione intitolata “Parametri di Configurazione”| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
credentialsFile | EncodedFile | ✅ | File credenziali service account |
projectId | string | ✅ | ID progetto Firebase/GCP |
collection | string | ✅ | Nome collezione Firestore |
databaseName | string | ❌ | Nome database Firestore (per progetti multi-database) |
Formato File Credenziali
Sezione intitolata “Formato File Credenziali”Il parametro credentialsFile supporta due modalità:
Codifica Base64
Sezione intitolata “Codifica Base64”{ "credentialsFile": { "mode": "base64", "data": "eyJ0eXBlIjoic2VydmljZV9hY2NvdW50Ii..." }}Percorso File
Sezione intitolata “Percorso File”{ "credentialsFile": { "mode": "path", "data": "/etc/meddle/firebase-credentials.json" }}Setup Service Account
Sezione intitolata “Setup Service Account”- Vai alla Console Firebase
- Seleziona il tuo progetto → Impostazioni Progetto → Service Account
- Clicca “Genera nuova chiave privata”
- Scarica il file JSON
- Usa il percorso file o codifica in base64 il contenuto
Formato Dati
Sezione intitolata “Formato Dati”Ogni payload dati viene aggiunto come nuovo documento nella collezione specificata:
{ "temperature": 25.5, "pressure": 101.3, "humidity": 60, "timestamp": 1234567890}Firestore genera automaticamente un ID documento univoco per ogni voce.
Casi d’Uso Comuni
Sezione intitolata “Casi d’Uso Comuni”1. Dati Sensori IoT
Sezione intitolata “1. Dati Sensori IoT”Memorizza letture sensori in Firestore:
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "path", "data": "/config/firebase-sa.json" }, "projectId": "iot-monitoring", "collection": "sensor_data" }}2. Logging Eventi
Sezione intitolata “2. Logging Eventi”Registra eventi di sistema su Firestore:
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "base64", "data": "<credentials>" }, "projectId": "event-tracker", "collection": "system_events" }}3. Architettura Multi-Database
Sezione intitolata “3. Architettura Multi-Database”Scrivi su un database specifico in un progetto multi-database:
{ "type": "FirebaseWriter", "config": { "credentialsFile": { "mode": "path", "data": "/config/firebase-sa.json" }, "projectId": "enterprise-app", "databaseName": "analytics-db", "collection": "metrics" }}Risoluzione Problemi
Sezione intitolata “Risoluzione Problemi”Inizializzazione Fallita
Sezione intitolata “Inizializzazione Fallita”Soluzioni:
- Verifica che il file credenziali sia JSON valido
- Controlla che l’ID progetto corrisponda al tuo progetto Firebase
- Assicurati che il service account abbia permessi Firestore
- Verifica la codifica base64 se usi modalità base64
Scrittura Fallita
Sezione intitolata “Scrittura Fallita”Soluzioni:
- Controlla che il nome collezione sia valido
- Verifica che le regole di sicurezza Firestore permettano scritture
- Assicurati che il service account abbia il ruolo
datastore.user - Controlla quote e limiti Firestore
Errore Connessione Client
Sezione intitolata “Errore Connessione Client”Soluzioni:
- Verifica connettività di rete verso Google Cloud
- Controlla che il firewall permetta HTTPS in uscita (porta 443)
- Assicurati che le credenziali non siano scadute o revocate
Best Practice
Sezione intitolata “Best Practice”- Usa Service Account: Non usare mai credenziali utente in produzione
- Limita i Permessi: Concedi solo i permessi Firestore necessari
- Organizza le Collezioni: Usa nomi collezione significativi con gerarchia chiara
- Monitora l’Utilizzo: Traccia operazioni lettura/scrittura Firestore per gestione costi
- Proteggi le Credenziali: Memorizza le credenziali in modo sicuro, non committarle nel version control