Zum Inhalt springen

Firebase-Konnektor

Der Firebase-Konnektor ermöglicht das Schreiben von Daten in Google Cloud Firestore, eine flexible, skalierbare NoSQL-Cloud-Datenbank für Mobile-, Web- und Serverentwicklung.

Konnektor-Typen:

  • FirebaseWriter - Dokumente in Firestore-Sammlungen schreiben

Daten in eine Firestore-Sammlung schreiben:

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

Mit einer bestimmten Firestore-Datenbank verbinden (für Multi-Datenbank-Projekte):

{
"type": "FirebaseWriter",
"config": {
"credentialsFile": {
"mode": "path",
"data": "/path/to/service-account.json"
},
"projectId": "my-firebase-project",
"databaseName": "production-db",
"collection": "iot_events"
}
}
ParameterTypErforderlichBeschreibung
credentialsFileEncodedFileService-Account-Anmeldedatei
projectIdstringFirebase/GCP-Projekt-ID
collectionstringFirestore-Sammlungsname
databaseNamestringFirestore-Datenbankname (für Multi-Datenbank-Projekte)

Der credentialsFile-Parameter unterstützt zwei Modi:

{
"credentialsFile": {
"mode": "base64",
"data": "eyJ0eXBlIjoic2VydmljZV9hY2NvdW50Ii..."
}
}
{
"credentialsFile": {
"mode": "path",
"data": "/etc/meddle/firebase-credentials.json"
}
}
  1. Gehen Sie zur Firebase-Konsole
  2. Wählen Sie Ihr Projekt → Projekteinstellungen → Service-Accounts
  3. Klicken Sie auf “Neuen privaten Schlüssel generieren”
  4. Laden Sie die JSON-Datei herunter
  5. Verwenden Sie den Dateipfad oder kodieren Sie den Inhalt in Base64

Jeder Daten-Payload wird als neues Dokument in der angegebenen Sammlung hinzugefügt:

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

Firestore generiert automatisch eine eindeutige Dokument-ID für jeden Eintrag.

Sensorwerte in Firestore speichern:

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

Systemereignisse in Firestore protokollieren:

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

In eine bestimmte Datenbank in einem Multi-Datenbank-Projekt schreiben:

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

Lösungen:

  • Überprüfen, ob die Anmeldedatei gültiges JSON ist
  • Projekt-ID mit Ihrem Firebase-Projekt abgleichen
  • Sicherstellen, dass der Service-Account Firestore-Berechtigungen hat
  • Base64-Kodierung überprüfen, wenn Base64-Modus verwendet wird

Lösungen:

  • Sammlungsnamen auf Gültigkeit prüfen
  • Firestore-Sicherheitsregeln auf Schreibberechtigung prüfen
  • Sicherstellen, dass der Service-Account die Rolle datastore.user hat
  • Firestore-Kontingente und -Limits prüfen

Lösungen:

  • Netzwerkverbindung zu Google Cloud überprüfen
  • Firewall auf ausgehende HTTPS-Verbindungen (Port 443) prüfen
  • Sicherstellen, dass Anmeldedaten nicht abgelaufen oder widerrufen sind
  1. Service-Accounts verwenden: Niemals Benutzeranmeldedaten in der Produktion verwenden
  2. Berechtigungen einschränken: Nur notwendige Firestore-Berechtigungen gewähren
  3. Sammlungen organisieren: Aussagekräftige Sammlungsnamen mit klarer Hierarchie verwenden
  4. Nutzung überwachen: Firestore-Lese-/Schreiboperationen für Kostenmanagement verfolgen
  5. Anmeldedaten sichern: Anmeldedaten sicher speichern, niemals in Versionskontrolle committen
  • MongoDB - Alternative NoSQL-Datenbank
  • SQL - Relationale Datenbankspeicherung
  • InfluxDB - Zeitreihendatenbank