Datenbank auswählen: Cloud Firestore oder Realtime Database

Firebase bietet zwei cloudbasierte, clientseitig zugängliche Dokumentdatenbanken. Wir empfehlen Neukunden, mit Cloud Firestore zu beginnen:

  • Cloud Firestore ist die empfohlene JSON-kompatible Lösung für Unternehmen Dokumentendatenbank, die mehr als 250.000 Entwickelnde als vertrauenswürdig einstuft. Geeignet für Anwendungen mit umfassenden Datenmodellen, die Abfragebarkeit, Skalierbarkeit und Hochverfügbarkeit. Es bietet auch eine latenzarme Clientsynchronisierung und eine Offline- Datenzugriff.

  • Realtime Database ist die klassische JSON-Datenbank von Firebase. 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 über die vorherigen wichtigen Überlegungen nachgedacht haben, Wählen Sie eine Datenbank aus. Wenn Sie immer noch die 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.

Cloud Firestore Bevorzugt Realtime Database
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.
  • Erfordert weniger Denormalisierung und Datenverflachung.

Weitere Informationen zum Cloud Firestore-Datenmodell.

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

Weitere Informationen zum Realtime Database-Datenmodell.

Echtzeit- und Offline-Support

Beide verfügen über ein Mobile-First-Realtime-SDK und unterstützen die lokale Datenspeicherung für und Apps, die bereit sind, offline zu arbeiten.

Cloud Firestore Bevorzugt 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 Clientverbindungsstatus aufzeichnen und Aktualisierungen senden wenn sich der Verbindungsstatus des Clients ändert.

Cloud Firestore Bevorzugt Realtime Database
Nicht nativ unterstützt. Du kannst auf dem von Realtime Database aufbauen Unterstützung für die Anwesenheitserkennung durch Synchronisierung von Cloud Firestore und Realtime Database mit Cloud Functions Siehe Build Präsenz in Cloud Firestore. Anwesenheitsunterstützung.

Abfragen

Daten aus einer der Datenbanken über Abfragen abrufen, sortieren und filtern.

Cloud Firestore Bevorzugt Realtime Database
Indexierte Abfragen mit kombinierter Sortierung und Filterung
  • Sie können Filter verketten und Filter und Sortierfunktionen für eine Eigenschaft in mit nur einer Abfrage.
  • Abfragen sind flach: Sie geben nur Dokumente in einer bestimmten Sammlung zurück. Sammlungsgruppe und gibt keine untergeordneten Sammlungsdaten zurück.
  • Abfragen müssen immer ganze Dokumente zurückgeben.
  • Abfragen werden standardmäßig indexiert: Die Abfrageleistung ist proportional zur die Größe des Ergebnissatzes, nicht des Datasets.
Detaillierte Abfragen mit eingeschränkter Sortier- und Filterfunktionen.
  • Abfragen können nach einer Eigenschaft sortieren oder nach einer Eigenschaft filtern, aber nicht beides.
  • Abfragen sind standardmäßig "tief", d. h., sie geben immer die gesamte Unterstruktur 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. aber die Leistung bestimmter Suchanfragen mit zunehmendem Dataset verschlechtert.

Schreibvorgänge und Transaktionen

Cloud Firestore Bevorzugt Realtime Database
Erweiterte Schreib- und Transaktionsvorgänge:
  • Datenschreibvorgänge durch Set- und Aktualisierungsvorgänge sowie erweiterte Transformationen wie Array- und numerische Operatoren.
  • Transaktionen Daten in kleinstmöglichen Schritten aus jeder Datenbank lesen und schreiben kann.
Grundlegende Schreib- und Transaktionsvorgänge:

Zuverlässigkeit und Leistung

Cloud Firestore Bevorzugt Realtime Database
Cloud Firestore ist eine regionale und multiregionale Lösung mit Skalierung automatisch.
  • Eine Lösung mit niedriger Latenz, die typische Antwortzeiten von maximal 30 ms
  • Ihre Daten werden in mehreren Rechenzentren in verschiedenen Regionen gespeichert, was für globale Skalierbarkeit und hohe Zuverlässigkeit sorgt.
  • Weltweit in regionalen oder multiregionalen Konfigurationen verfügbar.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitsmerkmalen von Cloud Firestore im Service Level Agreement.
Realtime Database ist eine regionale Lösung.
  • Verfügbar in regionalen Konfigurationen. Datenbanken sind auf zonale Verfügbarkeit in einer Region.
  • Extrem niedrige Latenz, mit typischen Antwortzeiten von nicht mehr als 10 ms. Eine ideal für häufige Statussynchronisierung.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitsmerkmalen von Realtime Database im Service Level Agreement.

Betriebszeit

Cloud Firestore Bevorzugt Realtime Database
Extrem hohe Verfügbarkeit.
  • Typische Verfügbarkeit von 99,999 %.
  • Wenn Verfügbarkeit besonders wichtig ist, z. B. bei E-Commerce-Apps, Cloud Firestore verwenden.
Leistung mit hoher Verfügbarkeit:
  • Typische Verfügbarkeit von 99,95 %

Skalierbarkeit

Cloud Firestore Bevorzugt Realtime Database
Die Skalierung erfolgt automatisch.
  • Die Skalierung erfolgt automatisch. Skalierungslimits liegen in der Nähe 1 Million gleichzeitige Verbindungen und 10.000 Schreibvorgänge pro Sekunde. Wir planen, in Zukunft nicht mehr erreichen.
  • Die Schreibraten sind auf einzelne Dokumente oder Indexe beschränkt.
Skalierung erfordert Fragmentierung.
  • Skalieren Sie auf etwa 200.000 gleichzeitige Verbindungen und 1.000 Schreibvorgänge pro Sekunde im in einer einzigen Datenbank. Wenn Sie darüber hinaus skalieren möchten, müssen Sie Ihre Daten auf mehrere Datenbanken aufteilen.
  • Keine lokalen Beschränkungen für Schreibraten auf einzelne Datenelemente.

Sicherheit

Cloud Firestore Bevorzugt Realtime Database
Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren. Programmiersprache, die Autorisierung und Validierung trennt.

Preise

Beide Lösungen sind in der Spark- und Blaze-Preismodelle.

Cloud Firestore Bevorzugt Realtime Database
Kosten, die hauptsächlich für Vorgänge in Ihrer Datenbank anfallen (Lesen, Schreiben, Löschen) und bei geringerer Geschwindigkeit, Bandbreite und Speicher.

Cloud Firestore unterstützt täglich Ausgabengrenzen für App Engine Projekte, um sicherzustellen, dass Sie die Kosten mit denen Sie sich wohlfühlen.

Weitere Informationen zu den Preismodellen für Cloud Firestore

Wird nur für Bandbreite und Speicherplatz berechnet, aber zu einem höheren zu zahlen.

Weitere Informationen zu den Preismodellen für Realtime Database

Cloud Firestore und Realtime Database verwenden

Sie können beide Datenbanken in derselben Firebase-App oder in demselben Firebase-Projekt verwenden. Sowohl NoSQL Datenbanken dieselben Datentypen speichern können und die Client-Bibliotheken auf ähnliche Weise. Berücksichtigen Sie die oben beschriebenen Unterschiede, wenn Sie sich dafür entscheiden, beide Datenbanken in Ihrer App zu verwenden.

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

Sind Sie bereit, sich für eine Datenbank zu entscheiden?

Wir hoffen, dass Ihnen dieser Vergleich geholfen hat, eine Firebase-Datenbanklösung zu finden. Jetzt können Sie lernen, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.