Firebase-Datenbank: Sollten Sie Realtime DB oder Cloud Firestore wählen?

Firebase ist ein NoSQL-Cloud-Dienst, der als Teil des Datenbankangebots der Google Cloud Platform angeboten wird. Er basiert auf einem Dokumentenmodell und kann zum Speichern und Synchronisieren von Daten in Echtzeit mit horizontaler Skalierung verwendet werden. Sie können Firebase für Mehrbenutzeranwendungen wie mobile Anwendungen, serverlose Anwendungen und Offline-Anwendungen verwenden.

Über die Standard-NoSQL-Funktionalität hinaus bietet Firebase Funktionen für Authentifizierung, Absturzberichte, Messaging, Leistungsüberwachung und Analysen. Firebase ist über SDK und API zugänglich und unterstützt sowohl Unity als auch C++. Sie können es in eine Vielzahl von Diensten und Dienstprogrammen integrieren, darunter Kubernetes-Bereitstellungen, BigQuery, Google Marketing Platform, Data Studio, JIRA und Slack.

In diesem Artikel werden die Unterschiede zwischen Firestore und Real Time Database erläutert.

Firebase-Datenbanktypen

Beim Firebase-Dienst können Sie zwischen zwei Architekturen und Datenmodellen wählen – Realtime Database und Cloud Firestore.

Realtime-Database

Realtime Database ist eine Datenbank, die JSON-Dokumente zur Speicherung von Schlüssel-Wert-Paaren verwendet. Sie umfasst Funktionen für die Datensynchronisierung über Web-Sockets und asynchrone Synchronisierung zur Unterstützung von Offline-Geräten. Das Datenbank-SDK bietet Unterstützung für Web-, Android- und iOS-Anwendungen.

Bei der Verwendung von Realtime Database müssen Sie Anwendungscode auf dem verwendeten Client schreiben und die Logik in der Client-App behandeln. Das bedeutet, dass Sie den Code für Anwendungen auf mehreren Plattformen duplizieren müssen. Alternativ können Sie Firebase Cloud Functions verwenden, um Anfragen zu bearbeiten, aber dies beeinträchtigt Ihre Fähigkeit, viele SDK-Funktionen zu nutzen.

Wenn Sie Ihre Client-Logik schreiben, sind Sie außerdem für die Datenvalidierung verantwortlich. Realtime Database schränkt Sie nicht durch Datentypen ein, so dass es an Ihnen liegt, die Typisierung nach Bedarf für Ihre Anwendungslogik durchzusetzen.

Cloud Firestore

Cloud Firestore ist eine neuere Datenbankversion, die Dokumentensammlungen zur Speicherung von Daten verwendet. Jedes Dokument in einer Sammlung kann Untersammlungen oder Datenfelder enthalten. Diese Struktur ermöglicht es Ihnen, Daten ähnlich wie Tabellen und Zeilen zu speichern und die Kompatibilität der Datenbank zu erweitern.

In Cloud Firestore sind die Daten typisiert. Zu den verfügbaren Typen gehören Boolesche Werte, Objekte, Arrays, Zahlen, Strings und Nullwerte. Sie haben auch Zugriff auf Geopunkte, Zeitstempel und flache Verweise auf Dokumente. Diese Typen ermöglichen es Ihnen, die Datenintegrität zu verwalten und typbasierte Fehler leichter zu finden.

Bei der Definition Ihrer Dokumente können Sie Verweise verwenden, um die Denormalisierung von Daten zu vermeiden, indem Sie die Anzahl der benötigten doppelten Kopien reduzieren. Darüber hinaus können Sie zwar keine Abfragen über Sammlungen hinweg durchführen, aber Sie können Referenzen verwenden, um lokale Kopien von Daten abzurufen. 

Echtzeit-Datenbank vs. Cloud Firestore: Welche sollten Sie wählen?

Bei der Auswahl zwischen den Firebase-Optionen sollten Sie die folgenden Faktoren berücksichtigen. Beachten Sie außerdem, dass beide auf einer kostenlosen Ebene verfügbar sind, so dass es möglich ist, beide Optionen zu testen.

Lesen Sie weiter, um mehr über die Unterschiede zwischen der Real Time Database und Firestore zu erfahren.

Datenmodell oder Datenstruktur

In Realtime Database können Sie Daten nur als Dokumentenbaum speichern. Das macht es schwierig, Daten zu organisieren, vor allem im großen Maßstab. Aus diesem Grund ist Realtime Database am besten für einfache Daten geeignet.

Im Gegensatz dazu ist es mit Cloud Firestore-Sammlungen relativ einfach, hierarchische Daten zu speichern. Diese Sammlungen ermöglichen die Verschachtelung von Objekten und erfordern weniger Denormalisierung als Realtime Database. Dadurch ist Cloud Firestore besser für komplexe Daten geeignet. Sie können ihn beispielsweise verwenden, um Infrastruktur als Code für Ihre DevOps-Bereitstellungen einfacher zu speichern und zu verwalten.

Abfragen in der Datenbank

Abfragen in der Echtzeitdatenbank sind auf jeweils eine Operation beschränkt. Sie können entweder filtern oder sortieren, aber nicht beides in einer einzigen Abfrage. Außerdem geben alle Abfragen Ihren gesamten Teilbaum zurück, da die Abfragen standardmäßig tief sind. Dies kann die Abfrage langsam machen.

In Cloud Firestore können Sie indizierte Abfragen durchführen, mit denen Sie eine zusammengesetzte Filterung und Sortierung vornehmen können. So können Sie nach Untersammlungen suchen. Dies bedeutet auch, dass die Abfrageleistung oft besser ist, da sie auf der Ergebnismenge und nicht auf der Größe des Datensatzes basiert.

Schreiben der Daten oder Transaktionen

In der Echtzeitdatenbank können Sie Schreiboperationen einzeln durchführen. Transaktionen sind atomar, aber nur in bestimmten Teilbäumen. Außerhalb des Teilbaums müssen Sie über das SDK Rückrufe zum Abschluss konfigurieren.

Mit Cloud Firestore können Sie sowohl atomare Transaktionen als auch Schreibvorgänge verwenden. Sie können Stapeloperationen durchführen und Transaktionen sind von jedem Teil Ihrer Datenbank aus zulässig. Das bedeutet, dass Sie keine Abschlussrückrufe verwenden müssen. Die Transaktion wird automatisch wiederholt, bis sie erfolgreich ist.

Sicherheitserwägungen

Autorisierung und Validierung werden in der Echtzeitdatenbank durch kaskadierende Regeln definiert. Diese Einschränkung erfordert, dass Sie die Regeln für die Validierung und Autorisierung einzeln definieren. Darüber hinaus ist Ihr Sicherheitsangebot auf die von Ihnen erstellten Firebase Security-Regeln beschränkt.

Mit Cloud Firestore können Sie sowohl Firebase-Sicherheitsregeln als auch Identitäts- und Zugriffsmanagement über Server-SDKs verwenden. Firebase umfasst auch eine automatische Datenvalidierung ohne Kaskadierung, obwohl Sie die Kaskadierung manuell erzwingen können. Der Nachteil dabei ist, dass Abfragen fehlschlagen können, wenn die Benutzer keinen Zugriff auf alle Ergebnisdaten haben.

Verlässlichkeit und Leistung

Echtzeitdatenbanken sind auf einen einzigen Verfügbarkeitsbereich beschränkt. Dies bietet eine sehr niedrige Latenz und eignet sich am besten für eine häufige Zustandssynchronisierung. Außerdem müssen Sie für die Skalierung von Realtime-Datenbanken ein Sharding implementieren.

Im Gegensatz dazu können Sie Cloud Firestore in mehreren Regionen mit automatischer globaler Skalierbarkeit verwenden. Sie haben die Möglichkeit, die Datenbank regional oder multiregional zu nutzen, wobei die Daten aus Gründen der Verfügbarkeit automatisch dupliziert werden.

Weitere Unterschiede zwischen den beiden Datenbanken bestehen in folgenden Punkten:

  • Einsatz in mehreren Regionen
  • Preisstruktur
  • Skalierbarkeit

Um mehr über diese Unterschiede zu erfahren, lesen Sie bitte den Artikel Firebase-Datenbanken erklärt.

Fazit

Firebase bietet zwei Datenbankdienste an: Realtime Database und Cloud Firestore. Dieser Artikel erklärt die Unterschiede zwischen Cloud Firestore und der Echtzeitdatenbank.

Die Realtime Database verwendet JSON-Dokumente, um Schlüssel-Wert-Paare zu speichern, Daten über WebSockets zu synchronisieren und für Android-, iOS- und Web-Apps zu funktionieren.

Cloud Firestore verwendet Dokumentensammlungen zum Speichern von Daten, jedes Dokument in einer Sammlung kann Untersammlungen enthalten, und die Datenbank liefert auch Echtzeit-Updates.

Suchen Sie nach Alternativen zur Firebase-Datenbank?

Dann schauen Sie sich bitte Back4app an. Es bietet einen skalierbaren relationalen Datenbankdienst. Das Produkt ist Open-Source, erlaubt komplexe Abfragen und macht die Daten über REST- oder GraphQL-APIs zugänglich.

Allgemeine FAQ

Welche Optionen gibt es für die Firebase-Datenbank?

  • The Realtime Database
  • Cloud Firestore

Was sind die Unterschiede zwischen Firebase-Datenbanken?

  • Datenmodell oder Datenstruktur
  • Abfragen in der Datenbank
  • Schreiben der Daten oder Transaktionen
  • Sicherheitsaspekte
  • Verlässlichkeit und Leistung

Was für eine Art von Datenbank ist Firebase?

Firebase ist eine NoSQL-Datenbank.


Leave a reply

Your email address will not be published.