Wählen Sie eine Datenbank: Cloud Firestore oder Realtime Database

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

  • Cloud Firestore ist die empfohlene JSON-kompatible Dokumentendatenbank der Unternehmensklasse, der mehr als 250.000 Entwickler vertrauen. Es eignet sich für Anwendungen mit umfangreichen Datenmodellen, die Abfragebarkeit, Skalierbarkeit und hohe Verfügbarkeit erfordern. Es bietet außerdem Client-Synchronisierung mit geringer Latenz und Offline-Datenzugriff.

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

Was gibt es sonst noch zu beachten?

Nachdem Sie über die vorherigen wichtigen Überlegungen nachgedacht haben, sind Sie möglicherweise bereit, eine Datenbank auszuwählen . Wenn Sie immer noch Vor- und Nachteile abwägen, werden in diesem Abschnitt weitere Unterschiede zwischen Cloud Firestore und Realtime Database behandelt.

Datenmodell

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

Cloud Firestore bevorzugt Echtzeitdatenbank
Speichert Daten als Dokumentensammlungen.
  • Einfache Daten lassen sich leicht in Dokumenten speichern, die JSON sehr ähnlich sind.
  • Komplexe, hierarchische Daten lassen sich mithilfe von Untersammlungen innerhalb von Dokumenten einfacher im großen Maßstab organisieren.
  • Erfordert weniger Denormalisierung und Datenreduzierung.

Erfahren Sie mehr über das Cloud Firestore-Datenmodell .

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

Erfahren Sie mehr über das Datenmodell der Echtzeitdatenbank .

Echtzeit- und Offline-Unterstützung

Beide verfügen über Mobile-First-Echtzeit-SDKs und unterstützen die lokale Datenspeicherung für offline-fähige Apps.

Cloud Firestore bevorzugt Echtzeitdatenbank
Offline-Unterstützung für Apple-, Android- und Web-Clients. Offline-Unterstützung für Apple- und Android-Clients.

Gegenwart

Es kann nützlich sein zu wissen, wann ein Client online oder offline ist. Die Firebase-Echtzeitdatenbank kann den Verbindungsstatus des Clients aufzeichnen und jedes Mal Aktualisierungen bereitstellen, wenn sich der Verbindungsstatus des Clients ändert.

Cloud Firestore bevorzugt Echtzeitdatenbank
Wird nicht nativ unterstützt. Sie können auf der Präsenzunterstützung von Realtime Database aufbauen, indem Sie Cloud Firestore und Realtime Database mithilfe von Cloud Functions synchronisieren. Siehe „Präsenz in Cloud Firestore erstellen“ . Präsenz unterstützt.

Abfragen

Rufen Sie Daten aus beiden Datenbanken über Abfragen ab, sortieren und filtern Sie sie.

Cloud Firestore bevorzugt Echtzeitdatenbank
Indizierte Abfragen mit zusammengesetzter Sortierung und Filterung .
  • Sie können Filter verketten und das Filtern und Sortieren einer Eigenschaft in einer einzigen Abfrage kombinieren.
  • Abfragen sind oberflächlich: Sie geben nur Dokumente in einer bestimmten Sammlung oder Sammlungsgruppe zurück und keine Untersammlungsdaten.
  • Abfragen müssen immer ganze Dokumente zurückgeben.
  • Abfragen werden standardmäßig indiziert: Die Abfrageleistung ist proportional zur Größe Ihres Ergebnissatzes, nicht Ihres Datensatzes.
Umfangreiche Abfragen mit eingeschränkten Sortier- und Filterfunktionen .
  • Abfragen können eine Eigenschaft sortieren oder filtern, aber nicht beides.
  • Abfragen sind standardmäßig tiefgreifend: Sie geben immer den gesamten Teilbaum zurück.
  • Abfragen können auf Daten mit beliebiger Granularität zugreifen, bis hin zu einzelnen Blattknotenwerten im JSON-Baum.
  • Abfragen erfordern keinen Index; Allerdings nimmt die Leistung bestimmter Abfragen ab, wenn Ihr Datensatz wächst.

Schreibvorgänge und Transaktionen

Cloud Firestore bevorzugt Echtzeitdatenbank
Erweiterte Schreib- und Transaktionsvorgänge.
  • Schreiben Sie Datenoperationen durch Set- und Update-Operationen sowie erweiterte Transformationen wie Array- und numerische Operatoren.
  • Transaktionen können Daten aus jedem Teil der Datenbank atomar lesen und schreiben.
Grundlegende Schreib- und Transaktionsoperationen.

Zuverlässigkeit und Leistung

Cloud Firestore bevorzugt Echtzeitdatenbank
Cloud Firestore ist eine regionale und multiregionale Lösung, die automatisch skaliert.
  • Eine Lösung mit geringer Latenz und typischen Reaktionszeiten von nicht mehr als 30 ms.
  • Speichert Ihre Daten in mehreren Rechenzentren in verschiedenen Regionen und gewährleistet so globale Skalierbarkeit und hohe Zuverlässigkeit.
  • Verfügbar in regionalen oder multiregionalen Konfigurationen auf der ganzen Welt.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitsmerkmalen von Cloud Firestore finden Sie im Service Level Agreement .
Realtime Database ist eine regionale Lösung.
  • Verfügbar in regionalen Konfigurationen. Datenbanken sind auf die zonale Verfügbarkeit innerhalb einer Region beschränkt.
  • Extrem niedrige Latenz mit typischen Reaktionszeiten von nicht mehr als 10 ms. Eine ideale Option für häufige Statussynchronisierungen.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitsmerkmalen der Echtzeitdatenbank finden Sie im Service Level Agreement .

Betriebszeit

Cloud Firestore bevorzugt Echtzeitdatenbank
Extrem hohe Verfügbarkeitsleistung.
  • Typische Verfügbarkeitsleistung von 99,999 %.
  • Wenn Verfügbarkeit von größter Bedeutung ist, beispielsweise bei E-Commerce-Apps, verwenden Sie Cloud Firestore.
Hohe Verfügbarkeitsleistung.
  • Typische Verfügbarkeitsleistung von 99,95 %.

Skalierbarkeit

Cloud Firestore bevorzugt Echtzeitdatenbank
Die Skalierung erfolgt automatisch.
  • Skaliert völlig automatisch. Die Skalierungsgrenzen liegen bei etwa 1 Million gleichzeitigen Verbindungen und 10.000 Schreibvorgängen/Sekunde. Wir planen, diese Grenzwerte in Zukunft zu erhöhen.
  • Die Schreibraten für einzelne Dokumente oder Indizes sind begrenzt .
Die Skalierung erfordert Sharding.
  • Skalieren Sie auf etwa 200.000 gleichzeitige Verbindungen und 1.000 Schreibvorgänge pro Sekunde in einer einzigen Datenbank. Eine darüber hinausgehende Skalierung erfordert die Aufteilung Ihrer Daten auf mehrere Datenbanken.
  • Keine lokalen Beschränkungen für die Schreibgeschwindigkeit einzelner Daten.

Sicherheit

Cloud Firestore bevorzugt Echtzeitdatenbank
Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren.
  • Liest und schreibt von mobilen SDKs, die durch Cloud Firestore-Sicherheitsregeln geschützt sind.
  • Liest und schreibt von Server-SDKs, die durch Identity and Access Management (IAM) gesichert sind.
  • Regeln werden nicht kaskadiert, es sei denn, Sie verwenden einen Platzhalter.
  • Regeln können Abfragen einschränken: Wenn die Ergebnisse einer Abfrage möglicherweise Daten enthalten, auf die der Benutzer keinen Zugriff hat, schlägt die gesamte Abfrage fehl.
Kaskadierende Regelsprache, die Autorisierung und Validierung trennt.

Preisgestaltung

Beide Lösungen sind in den Preisplänen Spark und Blaze verfügbar.

Cloud Firestore bevorzugt Echtzeitdatenbank
Gebühren fallen hauptsächlich für in Ihrer Datenbank ausgeführte Vorgänge (Lesen, Schreiben, Löschen) und, zu einem geringeren Preis, für Bandbreite und Speicher an.

Cloud Firestore unterstützt tägliche Ausgabenlimits für App Engine-Projekte, um sicherzustellen, dass Sie die Kosten, mit denen Sie einverstanden sind, nicht überschreiten.

Erfahren Sie mehr über die Preispläne für Cloud Firestore .

Es fallen nur Gebühren für Bandbreite und Speicher an , jedoch zu einem höheren Preis.

Erfahren Sie mehr über die Preispläne für Echtzeitdatenbanken .

Verwendung von Cloud Firestore und Echtzeitdatenbank

Sie können beide Datenbanken innerhalb derselben Firebase-App oder desselben Firebase-Projekts verwenden. Beide NoSQL-Datenbanken können die gleichen Datentypen speichern und die Client-Bibliotheken funktionieren auf ähnliche Weise. Beachten Sie die zuvor beschriebenen Unterschiede, wenn Sie sich für die Verwendung beider Datenbanken in Ihrer App entscheiden.

Erfahren Sie mehr über die Funktionen, die sowohl in Realtime Database als auch in Cloud Firestore verfügbar sind.

Sind Sie bereit, eine Datenbank auszuwählen?

Hoffentlich hat Ihnen dieser Vergleich dabei geholfen, sich für eine Firebase-Datenbanklösung zu entscheiden. Jetzt erfahren Sie, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.