Datenbank auswählen: Cloud Firestore oder Realtime Database

Firebase bietet zwei cloudbasierte, für Clients zugängliche Dokumentdatenbanken. Wir empfehlen Neukunden, mit Cloud Firestore zu beginnen:

  • Cloud Firestore ist die empfohlene JSON-kompatible Dokumentendatenbank auf Unternehmensniveau, der mehr als 600.000 Entwickler vertrauen. Sie eignet sich für Anwendungen mit umfangreichen Datenmodellen, die Abfragefähigkeit, Skalierbarkeit und Hochverfügbarkeit erfordern. Außerdem bietet sie eine Clientsynchronisierung mit niedriger Latenz und Offlinedatenzugriff.

  • Realtime Database ist die klassische Firebase-JSON-Datenbank. Sie eignet sich für Anwendungen mit einfachen Datenmodellen, die einfache Suchvorgänge und eine Synchronisierung mit niedriger Latenz bei begrenzter Skalierbarkeit erfordern.

Welche anderen wichtigen Dinge sollten Sie berücksichtigen?

Nachdem Sie sich die vorherigen wichtigen Überlegungen durchgelesen haben, können Sie jetzt eine Datenbank auswählen. Wenn Sie noch die Vor- und Nachteile abwägen, finden Sie in diesem Abschnitt weitere Unterschiede zwischen Cloud Firestore und Realtime Database.

Datenmodell

Sowohl Realtime Database als auch Cloud Firestore sind NoSQL-Datenbanken.

Cloud Firestore [ PREFERRED ] Realtime Database
Speichert Daten als Sammlungen von Dokumenten.
  • Einfache Daten lassen sich leicht in Dokumenten speichern, die JSON sehr ähnlich sind.
  • Komplexe, hierarchische Daten lassen sich in großem Umfang leichter organisieren, wenn Sie Untergruppen in Dokumenten verwenden.
  • Erfordert weniger Denormalisierung und Datenvereinfachung.

Weitere Informationen zum Cloud Firestore-Datenmodell

Speichert Daten als einen großen JSON-Baum.
  • Einfache Daten lassen sich sehr leicht speichern.
  • Komplexe, hierarchische Daten sind im großen Maßstab schwieriger zu organisieren.

Weitere Informationen zum Realtime Database-Datenmodell

Echtzeit- und Offline-Unterstützung

Beide haben Mobile-First-Echtzeit-SDKs und unterstützen die lokale Datenspeicherung für offlinefähige Apps.

Cloud Firestore [ PREFERRED ] Realtime Database
Offline-Unterstützung für Apple-, Android- und Webclients Offline-Unterstützung für Apple- und Android-Clients:

Präsenz

Es kann nützlich sein, zu wissen, wann ein Client online oder offline ist. FirebaseRealtime Database kann den Verbindungsstatus des Clients aufzeichnen und jedes Mal Updates bereitstellen, wenn sich der Verbindungsstatus des Clients ändert.

Cloud Firestore [ PREFERRED ] Realtime Database
Nicht nativ unterstützt. Du kannst die Unterstützung von Realtime Database für die Anwesenheit nutzen, indem du Cloud Firestore und Realtime Database mit Cloud Functions synchronisierst. Weitere Informationen findest du unter Anwesenheit in Cloud Firestore einrichten. Anwesenheit wird unterstützt.

Abfragen

Daten aus beiden Datenbanken über Abfragen abrufen, sortieren und filtern

Cloud Firestore [ PREFERRED ] Realtime Database
Indexierte Abfragen mit zusammengesetzter Sortierung und Filterung.
  • Sie können Filter verketten und Filter- und Sortieroptionen für ein Attribut in einer einzigen Abfrage kombinieren.
  • Abfragen sind flach: Sie geben nur Dokumente in einer bestimmten Sammlung oder Sammlungsgruppe zurück, aber keine Unterergebnisdaten.
  • Abfragen müssen immer ganze Dokumente zurückgeben.
  • Abfragen werden standardmäßig indexiert: Die Abfrageleistung ist proportional zur Größe des Ergebnissatzes, nicht des Datasets.
Umfangreiche Abfragen mit eingeschränkten Sortier- und Filterfunktionen.
  • Abfragen können nach einem Attribut sortieren oder filtern, aber nicht beides.
  • Abfragen sind standardmäßig tief: Sie geben immer den gesamten Unterbaum zurück.
  • Abfragen können auf Daten in beliebiger Granularität zugreifen, bis hin zu einzelnen Blattknotenwerten im JSON-Baum.
  • Für Abfragen ist kein Index erforderlich. Die Leistung bestimmter Abfragen nimmt jedoch ab, wenn Ihr Dataset wächst.

Schreibvorgänge und Transaktionen

Cloud Firestore [ PREFERRED ] Realtime Database
Erweiterte Schreib- und Transaktionsvorgänge.
  • Datenschreibvorgänge über Set- und Update-Vorgänge sowie erweiterte Transformationen wie Array- und numerische Operatoren.
  • Transaktionen können Daten aus jedem Teil der Datenbank atomar lesen und schreiben.
Grundlegende Schreib- und Transaktionsvorgänge
  • Daten schreiben, indem Sie Vorgänge zum Festlegen und Aktualisieren ausführen.
  • Transaktionen sind für einen bestimmten Datenunterbaum atomar.

Zuverlässigkeit und Leistung

Cloud Firestore [ PREFERRED ] Realtime Database
Cloud Firestore ist eine regionale und multiregionale Lösung, die automatisch skaliert wird.
  • Eine Lösung mit niedriger Latenz und typischen Antwortzeiten von maximal 30 ms.
  • Ihre Daten werden in mehreren Rechenzentren in verschiedenen Regionen gespeichert, was globale Skalierbarkeit und hohe Zuverlässigkeit ermöglicht.
  • Verfügbar in regionalen oder multiregionalen Konfigurationen weltweit.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitsmerkmalen von Cloud Firestore finden Sie im Service Level Agreement.
Realtime Database ist eine regionale Lösung.
  • In regionalen Konfigurationen verfügbar. Datenbanken sind auf die zonale Verfügbarkeit innerhalb einer Region beschränkt.
  • Extrem niedrige Latenz mit typischen Antwortzeiten von maximal 10 ms. Eine ideale Option für die häufige Statussynchronisierung.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitsmerkmalen von Realtime Database finden Sie im Service Level Agreement.

Betriebszeit

Cloud Firestore [ PREFERRED ] Realtime Database
Extrem hohe Verfügbarkeit.
  • Typische Verfügbarkeit von 99,999 %
  • Wenn die Verfügbarkeit von größter Bedeutung ist, z. B. bei E-Commerce-Anwendungen, verwenden Sie Cloud Firestore.
Hohe Verfügbarkeit
  • Typische Verfügbarkeit von 99,95 %

Skalierbarkeit

Cloud Firestore [ BEVORZUGT ] Realtime Database
Die Skalierung erfolgt automatisch.
  • Vollständig automatische Skalierung. Keine Beschränkungen für gleichzeitige Verbindungen oder die Gesamtzahl der Datenbankschreibvorgänge pro Sekunde.
  • Es gibt Limits für die Schreibraten für einzelne Dokumente oder Indexe.
Für die Skalierung ist Sharding erforderlich.
  • Skalierung auf etwa 200.000 gleichzeitige Verbindungen und 1.000 Schreibvorgänge pro Sekunde in einer einzelnen Datenbank. Eine darüber hinausgehende Skalierung erfordert das Sharding Ihrer Daten über mehrere Datenbanken hinweg.
  • Keine lokalen Limits für Schreibraten für einzelne Daten.

Sicherheit

Cloud Firestore [ PREFERRED ] Realtime Database
Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren.
  • Liest und schreibt aus mobilen SDKs, die durch Cloud Firestore Security Rules gesichert sind.
  • Lese- und Schreibvorgänge von Server-SDKs, die durch Identity and Access Management (IAM) gesichert sind.
  • Regeln werden nur kaskadiert, wenn Sie einen Platzhalter verwenden.
  • Regeln können Abfragen einschränken: Wenn die Ergebnisse einer Abfrage Daten enthalten könnten, auf die der Nutzer keinen Zugriff hat, schlägt die gesamte Abfrage fehl.
Kaskadierende Regelsprache, die Autorisierung und Validierung trennt.

Preise

Beide Lösungen sind im Spark- und Blaze-Preismodell verfügbar.

Cloud Firestore [ PREFERRED ] Realtime Database
Die Gebühren fallen hauptsächlich für Vorgänge in Ihrer Datenbank (Lesen, Schreiben, Löschen) und zu einem geringeren Teil für Bandbreite und Speicher an.

Cloud Firestore unterstützt monatliche Budgets und Benachrichtigungen, damit Sie nicht mehr ausgeben, als Sie möchten.

Weitere Informationen zu Cloud Firestore-Preismodellen

Es werden nur Bandbreite und Speicher in Rechnung gestellt, jedoch zu einem höheren Preis.

Weitere Informationen zu den Preismodellen für Realtime Database

Sowohl Cloud Firestore als auch Realtime Database verwenden

Sie können beide Datenbanken in derselben Firebase-App oder demselben Firebase-Projekt verwenden. Beide NoSQL-Datenbanken können dieselben Datentypen speichern und die Clientbibliotheken funktionieren auf ähnliche Weise. Beachten Sie die zuvor beschriebenen Unterschiede, wenn Sie beide Datenbanken in Ihrer Anwendung verwenden.

Weitere Informationen zu den Funktionen, die sowohl in Realtime Database als auch in Cloud Firestore verfügbar sind.

Bereit, eine Datenbank auszuwählen?

Hoffentlich hat Ihnen dieser Vergleich bei der Entscheidung für eine Firebase-Datenbanklösung geholfen. Jetzt können Sie sich ansehen, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.