Datenbank auswählen: Cloud Firestore oder Realtime Database

Firebase bietet zwei cloudbasierte, clientzugängliche Dokumentendatenbanken. Wir empfehlen Neukunden, mit Cloud Firestore zu beginnen:

  • Cloud Firestore ist die empfohlene JSON-kompatible Dokumentendatenbank für Unternehmen, auf die mehr als 250.000 Entwickler vertrauen. Sie eignet sich für Anwendungen mit umfangreichen Datenmodellen, die Abfragefunktionen, Skalierbarkeit und Hochverfügbarkeit erfordern. Außerdem bietet es 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 Suchanfragen und eine Synchronisierung mit geringer Latenz bei begrenzter Skalierbarkeit erfordern.

Was ist sonst noch zu beachten?

Nachdem Sie sich die oben genannten wichtigen Aspekte überlegt haben, sind Sie möglicherweise bereit, eine Datenbank auszuwä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 mithilfe von untergeordneten Sammlungen in Dokumenten leichter in großem Umfang organisieren.
  • Erfordert weniger Denormalisierung und Datenflattening.

Weitere Informationen zum Cloud Firestore-Datenmodell

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

Weitere Informationen zum Realtime Database-Datenmodell

Echtzeit- und Offlineunterstützung

Beide haben mobile-first-Echtzeit-SDKs und unterstützen den lokalen Datenspeicher für offlinefähige Apps.

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

Präsenz

Es kann hilfreich sein zu wissen, wann ein Kunde online oder offline ist. FirebaseRealtime Database kann den Clientverbindungsstatus erfassen und jedes Mal aktualisieren, wenn sich der Verbindungsstatus des Clients ändert.

Cloud Firestore [ PREFERRED ] Realtime Database
Nicht nativ unterstützt. Sie können die Anwesenheitsunterstützung von Realtime Database nutzen, indem Sie Cloud Firestore und Realtime Database mit Cloud Functions synchronisieren. Weitere Informationen finden Sie unter Anwesenheit in Cloud Firestore erstellen. Anwesenheit wird unterstützt.

Abfragen

Daten aus einer der beiden Datenbanken per Abfrage abrufen, sortieren und filtern

Cloud Firestore [ PREFERRED ] Realtime Database
Indexierte Abfragen mit kombinierter Sortierung und Filterung
  • Sie können Filter verketten und Filtern und Sortieren für ein Attribut in einer einzigen Abfrage kombinieren.
  • Abfragen sind flach: Sie geben nur Dokumente in einer bestimmten Sammlung oder Sammlungsgruppe zurück und keine Daten aus untergeordneten Sammlungen.
  • Abfragen müssen immer ganze Dokumente zurückgeben.
  • Abfragen werden standardmäßig indexiert: Die Abfrageleistung ist proportional zur Größe des Ergebnissatzes, nicht des Datensatzes.
Abfragen mit begrenzten Sortier- und Filterfunktionen
  • Abfragen können nach einer Property sortiert oder gefiltert werden, aber nicht beides.
  • Abfragen sind standardmäßig tief: Sie geben immer den gesamten untergeordneten Knoten zurück.
  • Abfragen können auf Daten mit beliebiger Detailgenauigkeit zugreifen, bis hin zu einzelnen Blattknotenwerten im JSON-Baum.
  • Für Abfragen ist kein Index erforderlich. Die Leistung bestimmter Abfragen nimmt jedoch mit zunehmender Größe des Datensatzes 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.
  • Mit Transaktionen können Daten aus jedem Teil der Datenbank atomisch gelesen und geschrieben werden.
Grundlegende 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.
  • Eine Lösung mit niedriger Latenz, bei der die typischen Antwortzeiten maximal 30 ms betragen.
  • Ihre Daten werden in mehreren Rechenzentren in verschiedenen Regionen gespeichert, was für globale Skalierbarkeit und hohe Zuverlässigkeit sorgt.
  • Verfügbar in regionalen oder multiregionalen Konfigurationen auf der ganzen Welt.
Weitere Informationen zu den Cloud Firestore Leistungs- und Zuverlässigkeitsmerkmalen 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, typische Antwortzeiten von maximal 10 ms. Ideal für häufige Statussynchronisierungen.
Weitere Informationen zu den Realtime Database Leistungs- und Zuverlässigkeitsmerkmalen finden Sie im Service Level Agreement.

Betriebszeit

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

Skalierbarkeit

Cloud Firestore [ PREFERRED ] Realtime Database
Die Skalierung erfolgt automatisch.
  • Skaliert vollständig automatisch. Die Skalierungslimits liegen bei etwa 1 Million gleichzeitiger Verbindungen und 10.000 Schreibvorgängen pro Sekunde. Wir planen, diese Limits in Zukunft zu erhöhen.
  • Es gibt Grenzwerte für die Schreibraten für einzelne Dokumente oder Indexe.
Für die Skalierung ist das Sharding erforderlich.
  • Skalieren auf etwa 200.000 gleichzeitige Verbindungen und 1.000 Schreibvorgänge/Sekunde in einer einzelnen Datenbank. Wenn Sie darüber hinaus skalieren möchten, müssen Sie Ihre Daten auf mehrere Datenbanken aufteilen.
  • Keine lokalen Einschränkungen für Schreibraten für einzelne Datenelemente.

Sicherheit

Cloud Firestore [ PREFERRED ] Realtime Database
Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren.
  • Liest und schreibt von mobilen SDKs, die mit Cloud Firestore Security Rules gesichert sind.
  • Liest und schreibt von Server-SDKs, die mit Identity and Access Management (IAM) gesichert sind.
  • Regeln werden nur dann kaskadiert, wenn Sie einen Platzhalter 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.
Kaskadierungsregelsprache, die Autorisierung und Validierung voneinander trennt.

Preise

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

Cloud Firestore [ PREFERRED ] Realtime Database
Die Gebühren werden hauptsächlich für Vorgänge in Ihrer Datenbank (Lesen, Schreiben, Löschen) und zu einem niedrigeren Preis für Bandbreite und Speicherplatz berechnet.

Cloud Firestore unterstützt tägliche Ausgabenlimits für App Engine-Projekte, damit Sie nicht mehr ausgeben, als Sie sich leisten können.

Weitere Informationen zu den Preismodellen für Cloud Firestore

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

Weitere Informationen zu Realtime Database-Preismodellen

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 ähnlich. Berücksichtigen Sie die oben beschriebenen Unterschiede, wenn Sie sich dazu entschließen, beide Datenbanken in Ihrer App zu verwenden.

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

Bereit, eine Datenbank auszuwählen?

Ich hoffe, dass dieser Vergleich Ihnen bei der Entscheidung für eine Firebase-Datenbanklösung geholfen hat. Jetzt erfahren Sie, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.