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 genutzt wird. Sie eignet sich für Anwendungen mit umfangreichen Datenmodellen, die Abfrage-, Skalierbarkeits- und Hochverfügbarkeitsfunktionen erfordern. Außerdem bietet sie eine Clientsynchronisierung mit niedriger Latenz und einen 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 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 Untersammlungen 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 Offline-Support

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

Cloud Firestore [ PREFERRED ] Realtime Database
Offline-Support für Apple-, Android- und Web-Clients. Offline-Support 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 zusammengesetzter 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 Untersammlungen.
  • 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 nach einer Property 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 zunehmender 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.
  • Lösung mit niedriger Latenz und typischen Antwortzeiten von maximal 30 ms.
  • Speichert Ihre Daten in mehreren Rechenzentren in verschiedenen Regionen und sorgt so für globale Skalierbarkeit und hohe Zuverlässigkeit.
  • Verfügbar in regionalen oder multiregionalen Konfigurationen weltweit.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitseigenschaften von Cloud Firestore 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 maximal 10 ms. Eine ideale Option für die häufige Synchronisierung von Status.
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 Datenbankschreibvorgänge pro Sekunde.
  • 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 nicht kaskadiert, es sei denn, Sie verwenden ein Platzhalterzeichen.
  • 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 Preismodellen.

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

Weitere Informationen zu den Realtime DatabasePreismodellen

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.