Datenbank auswählen: Cloud Firestore oder Realtime Database

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

  • Cloud Firestore ist die empfohlene JSON-kompatible Dokumentdatenbank für Unternehmen, die von mehr als 250.000 Entwicklern genutzt wird. Sie eignet sich für Anwendungen mit umfangreichen Datenmodellen, die Abfragefähigkeit, Skalierbarkeit und hohe Verfügbarkeit 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 geringer Latenz und begrenzter Skalierbarkeit erfordern.

Was ist sonst noch zu beachten?

Nachdem Sie die oben genannten wichtigen Aspekte 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
Daten werden als Sammlungen von Dokumenten gespeichert.
  • Einfache Daten lassen sich problemlos in Dokumenten speichern, die JSON sehr ähnlich sind.
  • Komplexe, hierarchische Daten lassen sich mithilfe von untergeordneten Sammlungen in Dokumenten einfacher im großen Maßstab organisieren.
  • Weniger Denormalisierung und Datenvereinfachung erforderlich.

Weitere Informationen zum Cloud Firestore-Datenmodell

Daten werden als großer JSON-Baum gespeichert.
  • Einfache Daten lassen sich sehr leicht speichern.
  • Komplexe, hierarchische Daten sind schwieriger im großen Maßstab zu organisieren.

Weitere Informationen zum Realtime Database-Datenmodell

Echtzeit- und Offlineunterstützung

Beide bieten mobile-first-SDKs für Echtzeitfunktionen und unterstützen die lokale Datenspeicherung für Apps, die auch offline funktionieren.

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

Präsenz

Es kann hilfreich sein zu wissen, wann ein Client online oder offline ist. Mit Firebase Realtime Database kann der Verbindungsstatus des Clients aufgezeichnet werden. Außerdem werden Updates bereitgestellt, wenn sich der Verbindungsstatus des Clients ändert.

Cloud Firestore [ PREFERRED ] Realtime Database
Wird nicht nativ unterstützt. Sie können die Unterstützung von Realtime Database für die Anwesenheit 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 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 ein Attribut in einer einzelnen Abfrage kombinieren.
  • Abfragen sind oberflächlich: Sie geben nur Dokumente in einer bestimmten Sammlung oder Sammlungsgruppe zurück, aber keine Daten aus untergeordneten Sammlungen.
  • Abfragen müssen immer vollständige Dokumente zurückgeben.
  • Abfragen werden standardmäßig indexiert: Die Abfrageleistung ist proportional zur Größe Ihres Ergebnissatzes, nicht zu Ihrem Datensatz.
Umfangreiche Abfragen mit eingeschränkten Sortier- und Filterfunktionen:
  • Abfragen können nach einem Attribut sortieren oder filtern, aber nicht beides.
  • Abfragen sind standardmäßig tief – 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 Aktualisierungsvorgänge sowie erweiterte Transformationen wie Array- und numerische Operatoren.
  • Mit Transaktionen können Daten aus einem beliebigen Teil der Datenbank atomar 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 wird.
  • Eine Lösung mit geringer Latenz und typischen Antwortzeiten von höchstens 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 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 höchstens 10 ms. Eine ideale Option für die häufige Synchronisierung von Status.
Weitere Informationen zu den Leistungs- und Zuverlässigkeitsmerkmalen von Realtime Database finden Sie im Service Level Agreement.

Betriebszeit

Cloud Firestore [ PREFERRED ] Realtime Database
Extrem hohe Uptime:
  • Typische Verfügbarkeit 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 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 Limits 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. Wenn Sie die Skalierung darüber hinaus vornehmen möchten, müssen Sie Ihre Daten auf mehrere Datenbanken aufteilen.
  • Es gibt keine lokalen Beschränkungen für die Schreibgeschwindigkeit einzelner Daten.

Sicherheit

Cloud Firestore [ PREFERRED ] Realtime Database
Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren:
  • Liest und schreibt Daten aus mobilen SDKs, die durch Cloud Firestore Security Rules geschützt sind.
  • Lese- und Schreibvorgänge über Server-SDKs, die durch Identity and Access Management (IAM) gesichert sind.
  • Regeln werden nur kaskadiert, wenn Sie einen Platzhalter verwenden.
  • Regeln können Abfragen einschränken: Wenn die Ergebnisse einer Abfrage Daten enthalten könnten, auf die der Nutzer keinen Zugriff hat, schlägt die gesamte Abfrage fehl.
Sprache für kaskadierende Regeln, die Autorisierung und Validierung trennt:

Preise

Beide Lösungen sind in den Spark- und Blaze-Tarifen verfügbar.

Cloud Firestore [ PREFERRED ] Realtime Database
Die Gebühren basieren hauptsächlich auf Vorgängen, die in Ihrer Datenbank ausgeführt werden (Lesen, Schreiben, Löschen), und in geringerem Maße auf Bandbreite und Speicher.

Cloud Firestore unterstützt Tagesausgabenlimits für App Engine-Projekte, damit Sie die Kosten nicht überschreiten, die Sie bereit sind auszugeben.

Weitere Informationen zu den Cloud Firestore-Preismodellen

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

Weitere Informationen zu den 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 auf ähnliche Weise. Berücksichtigen Sie die oben beschriebenen Unterschiede, wenn Sie beide Datenbanken in Ihrer App verwenden möchten.

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

Bereit, eine Datenbank auszuwählen?

Wir hoffen, dass dieser Vergleich Ihnen bei der Entscheidung für eine Firebase-Datenbanklösung geholfen hat. Als Nächstes erfahren Sie, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.