Check out what’s new from Firebase at Google I/O 2022. Learn more

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

Firebase bietet zwei Cloud-basierte, für Clients zugängliche Datenbanklösungen, die die Echtzeit-Datensynchronisierung 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 auch reichhaltigere, schnellere Abfragen und skaliert weiter als die Echtzeitdatenbank.

  • Realtime Database ist die ursprüngliche Datenbank von Firebase. Es ist eine effiziente Lösung mit geringer Latenz für mobile Apps, die synchronisierte Status zwischen 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 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
  • Kostenlose Stufe, dann zahlen Sie für das, was Sie verwenden

Wichtige Überlegungen

Denken Sie über die großartigen Kernfunktionen hinaus, 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...
Hauptsächlich Daten synchronisieren, mit grundlegenden Abfragen.
Wenn Sie keine erweiterten Abfragen, Sortierungen und Transaktionen benötigen, empfehlen wir Realtime Database .
Erweitertes Abfragen, Sortieren und Transaktionen.
Wenn Sie komplexe Interaktionen mit Ihren Daten benötigen, beispielsweise in E-Commerce-Apps, empfehlen wir Cloud Firestore .
Operationen auf Daten
Die Datenbanknutzung meiner App sieht so aus...
Ein paar GB oder weniger Daten, die sich häufig ändern.
Wenn Ihre App einen Strom winziger Updates sendet, wie z. B. in einer digitalen Whiteboard-App, empfehlen wir Realtime Database .
Hunderte von GB bis TB an Daten, die viel öfter gelesen als geändert werden.
Für sehr große Datenmengen und wenn häufig Batchvorgänge erforderlich sind, empfehlen wir Cloud Firestore .
Datenmodell
Ich bevorzuge es, meine Daten so zu strukturieren, wie...
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 Erreichbarkeitsanforderungen sind...
Extrem hohe Verfügbarkeitsgarantie von 99,999 %.
Wenn die Verfügbarkeit von größter Bedeutung ist, beispielsweise in E-Commerce-Apps, empfehlen wir Cloud Firestore .
Eine Garantie von mindestens 99,95 % Betriebszeit.
Wenn eine sehr hohe, aber nicht kritische Verfügbarkeit akzeptabel ist, empfehlen wir entweder Cloud Firestore oder Realtime Database .
Offline-Abfragen von 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 ständig online sind, empfehlen wir Cloud Firestore oder Realtime Database .
Anzahl der Datenbankinstanzen
In meinen individuellen Projekten muss ich verwenden ...
Viele Datenbanken, zum Beispiel eine Datenbank für jeden Großkunden.
Da Sie damit mehrere Datenbanken zu einem einzigen Firebase-Projekt hinzufügen können, empfehlen wir Realtime Database .
Nur eine einzige Datenbank.
Wenn Sie eine einzelne Datenbank benötigen, empfehlen wir entweder Cloud Firestore oder Realtime Database .

Was gibt es sonst noch Wichtiges 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, behandelt dieser Abschnitt andere Unterschiede zwischen Cloud Firestore und Realtime Database.

Datenmodell

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

Echtzeit-Datenbank Cloud-Firestore
Speichert Daten als einen großen JSON-Baum.
  • Einfache Daten sind sehr einfach zu speichern.
  • Komplexe, hierarchische Daten sind schwieriger in großem Umfang zu organisieren.

Erfahren Sie mehr über das Datenmodell der 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 mithilfe von Untersammlungen in Dokumenten einfacher in großem Umfang organisieren.
  • Erfordert weniger Denormalisierung und Datenglättung.

Erfahren Sie mehr über das Cloud Firestore-Datenmodell .

Echtzeit- und Offline-Unterstützung

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

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

Gegenwart

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

Echtzeit-Datenbank Cloud-Firestore
Präsenz unterstützt. Nicht nativ unterstützt. Sie können die Präsenzunterstützung von Realtime Database nutzen, indem Sie Cloud Firestore und Realtime Database mithilfe von Cloud Functions synchronisieren. Siehe Präsenz in Cloud Firestore aufbauen .

Abfragen

Abrufen, Sortieren und Filtern von Daten aus beiden Datenbanken durch Abfragen.

Echtzeit-Datenbank Cloud-Firestore
Tiefe Abfragen mit eingeschränkter Sortier- und Filterfunktion .
  • Abfragen können nach einer Eigenschaft sortieren oder filtern, aber nicht beides.
  • Abfragen sind standardmäßig tief: Sie geben immer den gesamten Teilbaum zurück.
  • Abfragen können auf Daten mit beliebiger Granularität zugreifen, bis hin zu einzelnen Blattknotenwerten in der JSON-Struktur.
  • Abfragen erfordern keinen Index; Die Leistung bestimmter Abfragen nimmt jedoch 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 und keine Untersammlungsdaten zurück.
  • 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.

Schreibt und Transaktionen

Echtzeit-Datenbank Cloud-Firestore
Grundlegende Schreib- und Transaktionsoperationen. Erweiterte Schreib- und Transaktionsoperationen.
  • 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

Echtzeit-Datenbank 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 Zustandssynchronisierung.
Lesen Sie mehr über die Leistungs- und Zuverlässigkeitsmerkmale der Realtime Database im Service Level Agreement .
Cloud Firestore ist eine regionale und multiregionale Lösung, die automatisch skaliert.
  • Speichert Ihre Daten in mehreren Rechenzentren in unterschiedlichen Regionen und gewährleistet so globale Skalierbarkeit und hohe Zuverlässigkeit.
  • Verfügbar in regionalen oder multiregionalen Konfigurationen auf der ganzen Welt.
Lesen Sie mehr über die Leistungs- und Zuverlässigkeitsmerkmale von Cloud Firestore im Service Level Agreement .

Skalierbarkeit

Echtzeit-Datenbank Cloud-Firestore
Skalierung erfordert Sharding.
  • Skalieren Sie in einer einzigen Datenbank auf etwa 200.000 gleichzeitige Verbindungen und 1.000 Schreibvorgänge/Sekunde. Eine darüber hinausgehende Skalierung erfordert das Sharding Ihrer Daten über mehrere Datenbanken hinweg.
  • Keine lokalen Begrenzungen der Schreibraten auf einzelne Daten.
Die Skalierung erfolgt automatisch.
  • Skaliert vollautomatisch. Derzeit liegen die Skalierungsgrenzen bei etwa 1 Million gleichzeitiger Verbindungen und 10.000 Schreibvorgängen/Sekunde. Wir planen, diese Limits in Zukunft zu erhöhen.
  • Verfügt über Begrenzungen der Schreibraten für einzelne Dokumente oder Indizes.

Sicherheit

Echtzeit-Datenbank 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 gesichert sind.
  • Lese- und Schreibvorgänge 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.

Echtzeit-Datenbank Cloud-Firestore
Gebühren nur für Bandbreite und Speicherplatz , aber zu einem höheren Satz.

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

Gebühren werden hauptsächlich für in Ihrer Datenbank ausgeführte Vorgänge (Lesen, Schreiben, Löschen) und zu einem geringeren Preis für Bandbreite und Speicherplatz berechnet.

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

Lesen Sie mehr über Cloud Firestore-Preispläne .

Verwenden von Cloud Firestore und Realtime Database

Sie können beide Datenbanken innerhalb derselben Firebase-App oder desselben 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 entscheiden, beide Datenbanken in Ihrer App zu verwenden .

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 geholfen, sich für eine Firebase-Datenbanklösung zu entscheiden. Jetzt erfahren Sie, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.