Datenbank auswählen: Cloud Firestore oder Realtime Database

Firebase bietet zwei cloudbasierte Dokumentdatenbanken, auf die Clients zugreifen können. Neukunden empfehlen wir, mit Cloud Firestore zu beginnen:

  • Cloud Firestore ist die empfohlene JSON-kompatible Dokumentdatenbank für Unternehmen, die von mehr als 600.000 Entwicklern verwendet wird. Sie eignet sich für Anwendungen mit komplexen Datenmodellen, die Abfragefunktionen, Skalierbarkeit und hohe Verfügbarkeit erfordern. Außerdem bietet sie eine Clientsynchronisierung mit niedriger Latenz und Offline-Datenzugriff.

  • 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 und begrenzter Skalierbarkeit erfordern.

Was gibt es sonst noch zu beachten?

Nachdem Sie die oben genannten wichtigen Punkte berücksichtigt haben, können Sie 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 problemlos in Dokumenten speichern, die JSON sehr ähnlich sind.
  • Komplexe, hierarchische Daten lassen sich mit Unterkollektionen in Dokumenten einfacher im großen Maßstab organisieren.
  • Erfordert weniger Denormalisierung und Datenvereinfachung.

Weitere Informationen zum Cloud Firestore Datenmodell.

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

Weitere Informationen zum Realtime Database Datenmodell.

Echtzeit- und Offlinesupport

Beide bieten Mobile-First-SDKs in Echtzeit und unterstützen die lokale Datenspeicherung für Apps, die offline verwendet werden können.

Cloud Firestore [ PREFERRED ] Realtime Database
Offlinesupport für Apple-, Android- und Webclients. Offlinesupport für Apple- und Android-Clients.

Präsenz

Es kann nützlich sein zu wissen, wann ein Client online oder offline ist. In der Firebase Realtime Database kann der Verbindungsstatus des Clients aufgezeichnet und jedes Mal aktualisiert werden, wenn sich der Verbindungsstatus des Clients ändert.

Cloud Firestore [ PREFERRED ] Realtime Database
Wird nicht nativ unterstützt. Sie können die Unterstützung für die Präsenz in Realtime Database's nutzen, indem Sie Cloud Firestore und Realtime Database mit Cloud Functions synchronisieren. Weitere Informationen finden Sie unter Präsenz in Cloud Firestore erstellen. Präsenz wird unterstützt.

Abfragen

Sie können Daten aus beiden Datenbanken über Abfragen abrufen, sortieren und filtern.

Cloud Firestore [ PREFERRED ] Realtime Database
Indexierte Abfragen mit kombinierter Sortierung und Filterung.
  • Sie können Filter verketten und Filterung und Sortierung für eine Property in einer einzigen Abfrage kombinieren.
  • Abfragen sind oberflächlich: Sie geben nur Dokumente in einer bestimmten Sammlung oder Sammlungsgruppe zurück und keine Daten aus Unterkollektionen.
  • Abfragen müssen immer vollständige Dokumente zurückgeben.
  • Abfragen werden standardmäßig indexiert: Die Abfrageleistung ist proportional zur Größe der Ergebnismenge und nicht zur Größe des Datasets.
Umfassende Abfragen mit eingeschränkten Sortier- und Filterfunktionen.
  • Abfragen können für eine Property entweder sortieren oder filtern, aber nicht beides.
  • Abfragen sind standardmäßig umfassend: Sie geben immer den gesamten Unterbaum zurück.
  • Abfragen können auf Daten mit 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 mit der Größe des Datasets ab.

Schreibvorgänge und Transaktionen

Cloud Firestore [ PREFERRED ] Realtime Database
Erweiterte Schreib- und Transaktionsvorgänge.
  • Schreibvorgänge für Daten ü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.
Einfache Schreib- und Transaktionsvorgänge.

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 gewährleistet.
  • Weltweit in regionalen oder multiregionalen Konfigurationen verfügbar.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitseigenschaften 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 häufige Statussynchronisierungen.
Weitere Informationen zu den Realtime Database Leistungs- und Zuverlässigkeitseigenschaften finden Sie im Service Level Agreement.

Betriebszeit

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

Skalierbarkeit

Cloud Firestore [ PREFERRED ] Realtime Database
Die Skalierung erfolgt automatisch.
  • Vollständig automatische Skalierung. Keine Beschränkungen für gleichzeitige Verbindungen oder die Gesamtrate der Schreibvorgänge pro Sekunde in der Datenbank.
  • Beschränkungen 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. Für eine weitere Skalierung müssen Sie Ihre Daten auf mehrere Datenbanken aufteilen.
  • Keine lokalen Beschränkungen für die Schreibraten für einzelne Daten.

Sicherheit

Cloud Firestore [ PREFERRED ] Realtime Database
Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren.
  • Lese- und Schreibvorgänge von mobilen SDKs werden durch Cloud Firestore Security Rules geschützt.
  • Lese- und Schreibvorgänge von Server-SDKs werden durch Identity and Access Management (IAM) geschützt.
  • Regeln werden nur kaskadiert, wenn Sie ein Platzhalterzeichen verwenden.
  • Regeln können Abfragen einschränken: Wenn die Ergebnisse einer Abfrage Daten enthalten 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 für die Spark- und Blaze-Tarife verfügbar.

Cloud Firestore [ PREFERRED ] Realtime Database
Die Kosten richten sich hauptsächlich nach den Vorgängen, die in Ihrer Datenbank ausgeführt werden (Lesen, Schreiben, Löschen), und in geringerem Maße nach der Bandbreite und dem Speicher.

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

Weitere Informationen zu Cloud Firestore Tarifen.

Die Kosten richten sich nur nach der Bandbreite und dem Speicher, aber zu einem höheren Preis.

Weitere Informationen zu den Realtime DatabaseTarifen

Cloud Firestore und Realtime Database verwenden

Sie können beide Datenbanken in derselben Firebase-App oder demselben Firebase-Projekt verwenden. In beiden NoSQL-Datenbanken können dieselben Datentypen gespeichert werden und die Clientbibliotheken funktionieren auf ähnliche Weise. Beachten Sie die oben genannten Unterschiede, wenn Sie sich entscheiden, beide Datenbanken in Ihrer App zu verwenden.

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

Bereit, eine Datenbank auszuwählen?

Wir hoffen, dass Ihnen dieser Vergleich bei der Auswahl einer Firebase-Datenbanklösung geholfen hat. Jetzt erfahren Sie, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.