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

Weitere Informationen zum Cloud Firestore-Datenmodell

Speichert die Daten in einer großen JSON-Baumstruktur.
  • Einfache Daten lassen sich sehr einfach speichern.
  • Komplexe, hierarchische Daten sind schwieriger zu organisieren in großem Maßstab.

Weitere Informationen zum Realtime Database-Datenmodell

Echtzeit- und Offline-Support

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 Offline-Unterstützung für Apple- und Android-Clients

Präsenz

Es kann hilfreich sein zu wissen, ob ein Kunde 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.

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 Datenbanken per Abfrage abrufen, sortieren und filtern

Cloud Firestore [ PREFERRED ] Realtime Database
Indexierte Abfragen mit kombinierter Sortier- 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 der Ergebnisse, nicht zur Größe des Datasets.
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 [ BEVORZUGT ] Realtime Database
Erweiterte Schreib- und Transaktionsvorgänge
  • Schreibvorgänge ü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 [ BEVORZUGT ] 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 weltweit.
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 mit typischen Antwortzeiten von nicht mehr als 10 ms. Eine ideale Option für eine häufige Statussynchronisierung.
Weitere Informationen zu den Realtime DatabaseLeistungs- 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.
  • Die Skalierung erfolgt vollständig automatisch. Die Skalierungslimits liegen bei etwa 1 Million gleichzeitigen 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 pro 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 der Schreibraten für einzelne Datenelemente.

Sicherheit

Cloud Firestore [ BEVORZUGT ] Realtime Database
Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren.
  • Liest und schreibt von mobilen SDKs, die mit Cloud Firestore Security Rules gesichert sind.
  • Lese- und Schreibvorgänge von Server-SDKs, die durch 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 möglicherweise Daten enthalten, auf die der Nutzer keinen Zugriff hat, schlägt die gesamte Abfrage fehl.
Programmiersprache, die Autorisierung und Validierung 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 Speicher 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 in 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.