Catch up on everthing we announced at this year's Firebase Summit. Learn more

Wählen Sie eine Datenbank aus: Cloud Firestore oder Realtime Database

Firebase bietet zwei Cloud-basierte, über den Client zugängliche Datenbanklösungen, die die Echtzeit-Datensynchronisierung unterstützen:

  • Cloud Firestor sind Firebase neueste Datenbank für mobile App - Entwicklung. Es baut auf den Erfolgen der Realtime Database mit einem neuen, intuitiveren Datenmodell auf. Cloud Firestore bietet auch umfangreichere, schnellere Abfragen und skaliert weiter als die Realtime Database.

  • Echtzeit - Datenbank ist ein Original - Datenbank Firebase. Es ist eine effiziente Lösung mit geringer Latenz für mobile Apps, die in Echtzeit synchronisierte Zustände zwischen Clients erfordern.

Welche Datenbank empfiehlt Firebase?

Ihre Wahl der Datenbanklösung hängt von vielen Faktoren ab, aber wenn es um bestimmte Funktionen geht, können wir Empfehlungen aussprechen, welche Datenbank für Sie die richtige ist.

Beide Lösungen bieten:

  • Client-First-SDKs, ohne Server bereitzustellen und zu warten
  • Echtzeit-Updates
  • Kostenlose Stufe, dann zahlen Sie für das, was Sie nutzen

Wichtige Überlegungen

Überlegen Sie sich, abgesehen von den großartigen Kernfunktionen beider Datenbanken, wie sich einige oder alle der unten aufgeführten Überlegungen auf den Erfolg Ihrer Apps auswirken.

Rolle der Datenbank
Meine App verwendet eine Datenbank für...
Hauptsächlich Daten synchronisieren, mit grundlegenden Abfragen.
Wenn Sie nicht erweiterte Abfrage- brauchen, Sortierung und Transaktionen, empfehlen wir Realtime - Datenbank.
Erweiterte Abfrage, Sortierung und Transaktionen.
Wenn Sie komplexe Interaktionen mit Ihren Daten benötigen, beispielsweise in E - Commerce - Anwendungen, empfehlen wir Cloud - Firestor.
Operationen an Daten
Die Datenbanknutzung meiner App sieht wie folgt aus...
Ein paar GB oder weniger Daten, die sich häufig ändern.
Wenn Ihre App wird einen Strom von kleinen Updates, wie in einem digitalen Whiteboard - App das Senden, empfehlen wir Realtime - Datenbank.
Hunderte von GB bis TB an Daten, die viel häufiger gelesen als geändert werden.
Für sehr große Datenmengen, und wenn Batch - Operationen häufig benötigt werden, empfehlen wir Wolke Firestor.
Datenmodell
Ich ziehe es vor, meine Daten so zu strukturieren, dass...
Ein einfacher JSON-Baum.
Für unstrukturierte Daten JSON, empfehlen wir Echtzeit - Datenbank.
In Sammlungen organisierte Dokumente.
Für strukturierte Dokumente und Sammlungen, empfehlen wir Wolke Firestor.
Verfügbarkeit
Meine Verfügbarkeitsanforderungen sind...
Extrem hohe Verfügbarkeitsgarantie von 99,999 %.
Wenn die Verfügbarkeit von größter Bedeutung ist, zum Beispiel in E - Commerce - Anwendungen, empfehlen wir Cloud - Firestor.
Eine Garantie von mindestens 99,95 % Verfügbarkeit.
Wenn sehr hoch , aber nicht kritisch Verfügbarkeit akzeptabel ist, empfehlen wir entweder Wolke Firestor oder Echtzeit - Datenbank.
Offline-Abfragen zu lokalen Daten
Meine App muss Abfragen auf Geräten mit eingeschränkter oder keiner Konnektivität durchführen...
Häufig.
Für anspruchsvolle Abfragefunktionen auf lokale Daten , wenn der Benutzer offline ist, empfehlen wir Wolke Firestor.
Selten oder nie.
Wenn Sie Ihre Benutzer erwarten konsequent online sein, empfehlen wir Cloud - Firestor oder Echtzeit - Datenbank.
Anzahl Datenbankinstanzen
In meinen einzelnen Projekten muss ich...
Viele Datenbanken, zum Beispiel eine Datenbank für jeden Großkunden.
Da es können Sie mehrere Datenbanken zu einem einzigen Firebase - Projekt hinzufügen, empfehlen wir Echtzeit - Datenbank.
Nur eine einzige Datenbank.
Wenn Sie eine einzelne Datenbank benötigen, wir entweder Wolke Firestor oder Echtzeit - Datenbank empfehlen.

Was sind andere wichtige Dinge zu beachten?

Über die bisherigen wichtigsten Überlegungen Nach einigem Nachdenken, könnten Sie bereit, eine Datenbank zu wählen . Wenn Sie immer noch Vor- und Nachteile abwägen, werden in diesem Abschnitt weitere Unterschiede zwischen Cloud Firestore und Realtime Database behandelt.

Datenmodell

Sowohl Realtime Database als auch Cloud Firestore sind NoSQL-Datenbanken.

Echtzeit-Datenbank Cloud Firestore
Speichert Daten als einen großen JSON-Baum.
  • Einfache Daten sind sehr einfach zu speichern.
  • Komplexe, hierarchische Daten sind schwieriger zu organisieren.

Erfahren Sie mehr über die Datenbank - Datenmodell in Echtzeit .

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 leichter skalieren.
  • Erfordert weniger Denormalisierung und Datenabflachung.

Erfahren Sie mehr über die Cloud - Firestore - Datenmodell .

Echtzeit- und Offline-Support

Beide verfügen über Mobile-First-Echtzeit-SDKs und beide unterstützen die lokale Datenspeicherung für offlinefähige Apps.

Echtzeit-Datenbank Cloud Firestore
Offline-Unterstützung für Apple Android-Clients. Offline-Unterstützung für Apple-, Android- und Web-Clients.

Gegenwart

Es kann nützlich sein zu wissen, ob ein Client online oder offline ist. Firebase Realtime Database kann den Verbindungsstatus des Clients aufzeichnen und jedes Mal, wenn sich der Verbindungsstatus des Clients ändert, Aktualisierungen bereitstellen.

Echtzeit-Datenbank Cloud Firestore
Präsenz unterstützt. Nicht nativ unterstützt. Sie können die Präsenzunterstützung von Realtime Database nutzen, indem Sie Cloud Firestore und Realtime Database mit Cloud Functions synchronisieren. Siehe Build - Präsenz in Cloud - Firestor .

Abfragen

Abrufen, Sortieren und Filtern von Daten aus beiden Datenbanken durch Abfragen.

Echtzeit-Datenbank Cloud Firestore
Tief Abfragen mit begrenzten Sortierung und Filterung Funktionalität .
  • Abfragen können auf einem Grundstück sortieren oder filtern, aber nicht beides.
  • Abfragen sind standardmäßig tief: Sie geben immer den gesamten Teilbaum zurück.
  • Abfragen können mit beliebiger Granularität auf Daten zugreifen, bis hin zu einzelnen Blattknotenwerten im JSON-Baum.
  • Abfragen erfordern keinen Index; Die Leistung bestimmter Abfragen nimmt jedoch ab, wenn Ihr Datensatz wächst.
Indexierten Abfragen mit Verbindung Sortierung und Filterung .
  • Sie können Filter verketten und Filtern und Sortieren für eine Eigenschaft in einer einzigen Abfrage kombinieren.
  • Abfragen sind flach: Sie geben nur Dokumente in einer bestimmten Sammlung oder Sammlungsgruppe zurück und geben keine Untersammlungsdaten zurück.
  • Abfragen müssen immer ganze Dokumente zurückgeben.
  • Abfragen werden standardmäßig indiziert: Die Abfrageleistung ist proportional zur Größe Ihres Resultsets, nicht Ihres Datasets.

Schreibt und Transaktionen

Echtzeit-Datenbank Cloud Firestore
Grundlegende Schreib- und Transaktionsoperationen. Erweiterte Schreib- und Transaktionsoperationen.
  • Schreibdatenoperationen durch Satz und Update - Operationen sowie erweiterte Transformationen wie Array und numerische Operatoren.
  • Transaktionen können atomar lesen und schreiben Daten von einem beliebigen Teil der Datenbank.

Zuverlässigkeit und Leistung

Echtzeit-Datenbank Cloud Firestore
Realtime Database ist eine regionale Lösung.
  • Erhältlich in regionalen Konfigurationen. Datenbanken sind auf die zonale Verfügbarkeit innerhalb einer Region beschränkt.
  • Extrem niedrige Latenz, ideale Option für häufige Statussynchronisierung.
Lesen Sie mehr über Realtime Datenbank - Performance und Zuverlässigkeit Eigenschaften im Service Level Agreement .
Cloud Firestore ist eine regionale und multiregionale Lösung, die automatisch skaliert.
  • Speichert Ihre Daten in mehreren Rechenzentren in unterschiedlichen Regionen und gewährleistet so globale Skalierbarkeit und hohe Zuverlässigkeit.
  • Erhältlich in regionalen oder multiregionalen Konfigurationen auf der ganzen Welt.
Lesen Sie mehr über Cloud - Firestor Leistung und Zuverlässigkeit Eigenschaften im Service Level Agreement .

Skalierbarkeit

Echtzeit-Datenbank Cloud Firestore
Skalierung erfordert Sharding.
  • Skalieren Sie auf etwa 200.000 gleichzeitige Verbindungen und 1.000 Schreibvorgänge/Sekunde in einer einzigen Datenbank. Eine darüber hinausgehende Skalierung erfordert das Sharding Ihrer Daten über mehrere Datenbanken.
  • Keine lokalen Beschränkungen der Schreibraten für einzelne Daten.
Die Skalierung erfolgt automatisch.
  • Skaliert vollautomatisch. Derzeit liegen die Skalierungsgrenzen bei etwa 1 Million gleichzeitiger Verbindungen und 10.000 Schreibvorgängen/Sekunde. Wir planen, diese Limits in Zukunft zu erhöhen.
  • Hat Grenzen auf Schreibraten auf einzelne Dokumente oder Indizes.

Sicherheit

Echtzeit-Datenbank Cloud Firestore
Kaskadierende Regelsprache, die Autorisierung und Validierung trennt. Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren.
  • Liest und schreibt von mobilen SDKs gesichert durch Cloud - Firestor Sicherheitsregeln .
  • Liest und schreibt vom Server SDKs gesichert durch Identity und Access Management (IAM) .
  • Regeln werden nicht kaskadiert, es sei denn, Sie verwenden einen Platzhalter.
  • Regeln können Abfragen einschränken: Wenn die Ergebnisse einer Abfrage Daten enthalten, auf die der Benutzer keinen Zugriff hat, schlägt die gesamte Abfrage fehl.

Preisgestaltung

Beide Lösungen sind auf dem verfügbaren Funken- und Blaze Preispläne .

Echtzeit-Datenbank Cloud Firestore
Gebühren nur für Bandbreite und Speicherplatz, aber mit einer höheren Rate.

Lesen Sie mehr über Realtime - Datenbank Preispläne .

Gebühren in erster Linie auf Operationen durchgeführt in Ihrer Datenbank (Lesen, Schreiben, Löschen) , und mit einer geringeren Geschwindigkeit, Bandbreite und Speicherplatz.

Cloud Firestor unterstützen die täglichen Ausgabenobergrenzen für App Engine - Projekte, um sicherzustellen , dass Sie gehen nicht die Kosten für Sie akzeptabel .

Lesen Sie mehr über Cloud - Firestor Preispläne .

Cloud Firestore und Echtzeitdatenbank verwenden

Sie können beide Datenbanken innerhalb derselben Firebase-App oder desselben Projekts verwenden. Beide NoSQL-Datenbanken können die gleichen Datentypen speichern und die Clientbibliotheken funktionieren auf ähnliche Weise. Halten Sie die Unterschiede im Auge oben skizzierte , wenn Sie sich entscheiden, beide Datenbanken in Ihrer App zu verwenden .

Erfahren Sie mehr über die in beide verfügbaren Funktionen Echtzeit - Datenbank und Cloud - Firestor .

Bereit, eine Datenbank auszuwählen?

Hoffentlich hat Ihnen dieser Vergleich geholfen, sich für eine Firebase-Datenbanklösung zu entscheiden. Jetzt erfahren Sie, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.