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

Firebase bietet zwei cloudbasierte, für den Client zugängliche Datenbanklösungen, die die Datensynchronisierung in Echtzeit unterstützen:

  • Cloud Firestore ist die neueste Datenbank von Firebase für die Entwicklung mobiler Apps. Es baut auf den Erfolgen der Realtime Database mit einem neuen, intuitiveren Datenmodell auf. Cloud Firestore bietet außerdem umfangreichere, schnellere Abfragen und lässt sich weiter skalieren als die Echtzeitdatenbank.

  • Die Echtzeitdatenbank ist die Originaldatenbank von Firebase. Es handelt sich um eine effiziente Lösung mit geringer Latenz für mobile Apps, die synchronisierte Zustände aller Clients in Echtzeit erfordern.

Welche Datenbank empfiehlt Firebase?

Ihre Wahl der Datenbanklösung hängt von vielen Faktoren ab, aber wenn es um bestimmte Funktionen geht, können wir Ihnen Empfehlungen geben, welche Datenbank für Sie die richtige ist.

Beide Lösungen bieten:

  • Client-First-SDKs, ohne dass Server bereitgestellt und gewartet werden müssen
  • Echtzeit-Updates
  • Kostenloses Kontingent, dann zahlen Sie für das, was Sie nutzen

Wichtige Überlegungen

Denken Sie neben den großartigen Kernfunktionen, die beiden Datenbanken gemeinsam sind, darüber nach, wie sich einige oder alle der unten aufgeführten Überlegungen auf den Erfolg Ihrer Apps auswirken.

Rolle der Datenbank
Meine App verwendet eine Datenbank für...
In erster Linie Daten synchronisieren, mit einfachen Abfragen.
Wenn Sie keine erweiterten Abfragen, Sortierungen und Transaktionen benötigen, empfehlen wir Realtime Database .
Erweiterte Abfragen, Sortierungen und Transaktionen.
Wenn Sie komplexe Interaktionen mit Ihren Daten benötigen, beispielsweise in E-Commerce-Apps, empfehlen wir Cloud Firestore .
Operationen an Daten
Die Datenbanknutzung meiner App sieht folgendermaßen aus:
Wenige GB oder weniger Daten, die sich häufig ändern.
Wenn Ihre App einen Strom winziger Updates sendet, z. B. in einer digitalen Whiteboard-App, empfehlen wir Realtime Database .
Hunderte GB bis TB an Daten, die viel häufiger gelesen als geändert werden.
Für sehr große Datensätze und wenn häufig Batch-Vorgänge erforderlich sind, empfehlen wir Cloud Firestore .
Datenmodell
Ich bevorzuge es, meine Daten wie folgt zu strukturieren:
Ein einfacher JSON-Baum.
Für unstrukturierte JSON-Daten empfehlen wir Realtime Database .
In Sammlungen organisierte Dokumente.
Für strukturierte Dokumente und Sammlungen empfehlen wir Cloud Firestore .
Verfügbarkeit
Meine Verfügbarkeitsanforderungen sind...
Extrem hohe Verfügbarkeitsgarantie von 99,999 %.
Wenn die Verfügbarkeit von größter Bedeutung ist, beispielsweise bei E-Commerce-Apps, empfehlen wir Cloud Firestore .
Eine Garantie von mindestens 99,95 % Verfügbarkeit.
Wenn eine sehr hohe, aber nicht kritische Verfügbarkeit akzeptabel ist, empfehlen wir entweder Cloud Firestore oder Realtime Database .
Offline-Abfragen zu lokalen Daten
Meine App muss Abfragen auf Geräten mit eingeschränkter oder keiner Konnektivität durchführen ...
Häufig.
Für ausgefeilte Abfragefunktionen für lokale Daten, wenn der Benutzer offline ist, empfehlen wir Cloud Firestore .
Selten oder nie.
Wenn Sie erwarten, dass Ihre Benutzer durchgehend online sind, empfehlen wir Cloud Firestore oder Realtime Database .

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.

Echtzeitdatenbank Cloud Firestore
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 .

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 .

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.

Echtzeitdatenbank Cloud Firestore
Offline-Unterstützung für Apple- und Android-Clients. Offline-Unterstützung für Apple-, Android- und Web-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.

Echtzeitdatenbank Cloud Firestore
Präsenz unterstützt. Wird nicht nativ unterstützt. Sie können die Anwesenheitsunterstützung von Realtime Database nutzen, indem Sie Cloud Firestore und Realtime Database mithilfe von Cloud Functions synchronisieren. Siehe Präsenz im Cloud Firestore aufbauen .

Abfragen

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

Echtzeitdatenbank Cloud Firestore
Umfangreiche Abfragen mit eingeschränkter Sortier- und Filterfunktionalität .
  • 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.
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.

Schreibvorgänge und Transaktionen

Echtzeitdatenbank Cloud Firestore
Grundlegende Schreib- und Transaktionsoperationen. 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.

Zuverlässigkeit und Leistung

Echtzeitdatenbank Cloud Firestore
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, ideale Option für häufige Statussynchronisierung.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitsmerkmalen der Echtzeitdatenbank finden Sie im Service Level Agreement .
Cloud Firestore ist eine regionale und multiregionale Lösung, die automatisch skaliert.
  • 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 .

Skalierbarkeit

Echtzeitdatenbank Cloud Firestore
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.
Die Skalierung erfolgt automatisch.
  • Skaliert völlig automatisch. Derzeit liegen die Skalierungsgrenzen 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 .

Sicherheit

Echtzeitdatenbank Cloud Firestore
Kaskadierende Regelsprache, die Autorisierung und Validierung trennt. 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.

Preisgestaltung

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

Echtzeitdatenbank 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 .

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 .

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 oben 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.