Was ist der Unterschied zwischen Cloud Firestore und der Firebase-Echtzeitdatenbank?

252

Google hat gerade Cloud Firestore veröffentlicht, die neue Dokumentendatenbank für Apps.

Ich habe die Dokumentation gelesen, sehe aber keine großen Unterschiede zwischen Firestore und Firebase DB.

Der Hauptpunkt ist, dass Firestore Dokumente und Sammlungen verwendet, die eine einfache Abfrage im Vergleich zu Firebase ermöglichen, einer traditionellen noSQL-Datenbank mit einer JSON-Basis.

Ich möchte ein bisschen mehr über ihre Unterschiede oder Verwendungen erfahren oder ob Firestore gerade gekommen ist, um Firebase DB zu ersetzen.

Francisco Durdin Garcia
quelle
1
Die Lesevorgänge im Firestore sind schneller, die
Schreibvorgänge

Antworten:

380

Deshalb habe ich einen ganzen Blog-Beitrag über genau diese Frage geschrieben, und ich empfehle Ihnen, ihn (oder die offizielle Dokumentation ) zu lesen, um eine vollständigere Antwort zu erhalten.

Aber wenn Sie die schnelle (-ish) Zusammenfassung wollen, hier ist es:

Bessere Abfrage und strukturiertere Daten - Während die Echtzeitdatenbank nur ein riesiger JSON-Baum ist, ist der Cloud Firestore etwas strukturierter. Alle Ihre Daten bestehen aus Dokumenten (im Grunde genommen Schlüsselwertspeichern) und Sammlungen (die Sammlungen von Dokumenten sind). Dokumente verweisen häufig auch auf Untersammlungen, die andere Dokumente enthalten, die selbst andere Dokumente enthalten können, und so weiter.

Diese strukturierten Daten helfen Ihnen auf zwei Arten. Erstens sind alle Abfragen flach , was bedeutet, dass Sie ein Dokument anfordern können, ohne alle darunter liegenden Daten zu erfassen. Dies bedeutet, dass Sie Ihre Daten hierarchisch auf eine Weise speichern können, die für Sie sinnvoller ist, ohne sich darum kümmern zu müssen, dass Ihre Datenbank flach bleibt. Zweitens haben Sie leistungsfähigere Abfragen. Beispielsweise können Sie jetzt mehrere Felder abfragen, ohne diese "Kombinationsfelder" erstellen zu müssen, die Daten aus anderen Teilen Ihrer Datenbank kombinieren (und denormalisieren). In einigen Fällen führt Cloud Firestore diese Abfragen nur direkt aus, in anderen Fällen werden automatisch Indizes für Sie erstellt und verwaltet.

Skaliert - Cloud Firestore kann besser skaliert werden als die Echtzeitdatenbank. Es ist wichtig zu beachten, dass Ihre Abfragen auf die Größe Ihrer Ergebnismenge und nicht auf Ihre Datenmenge skaliert werden. Die Suche bleibt also schnell, egal wie groß Ihr Datensatz wird.

Einfacheres manuelles Abrufen von Daten - Wie bei der Echtzeitdatenbank können Sie Listener im Cloud Firestore einrichten, um Änderungen in Echtzeit zu streamen. Wenn Sie diese Art von Verhalten nicht möchten und nur einen einfachen Aufruf zum Abrufen meiner Daten wünschen, hat Cloud Firestore dies ebenfalls und ist als primärer Anwendungsfall integriert. (Sie sind viel besser als die onceAnrufe in Realtime Database-Land)

Unterstützung für mehrere Regionen - Dies bedeutet im Grunde genommen mehr Zuverlässigkeit, da Ihre Daten von mehreren Rechenzentren gleichzeitig gemeinsam genutzt werden. Sie haben jedoch immer noch eine starke Konsistenz, sodass Sie jederzeit eine Abfrage durchführen und sicher sein können, dass Sie die neueste Version Ihrer Daten erhalten.

Unterschiedliches Preismodell - Während die Echtzeitdatenbank hauptsächlich basierend auf Speicher oder Netzwerkbandbreite berechnet, berechnet Cloud Firestore hauptsächlich basierend auf der Anzahl der von Ihnen ausgeführten Vorgänge . Wird das besser oder schlechter sein? Das hängt von Ihrer App ab.

Für die Stromversorgung einer Nachrichten-App, eines rundenbasierten Multiplayer-Spiels oder einer ähnlichen Version von Stack Overflow wird Cloud Firestore unter Preisgesichtspunkten wahrscheinlich recht günstig aussehen. Für so etwas wie eine Echtzeit-Gruppenzeichnungs-App, bei der Sie mehrere Updates pro Sekunde an mehrere Personen senden, ist diese wahrscheinlich teurer als die Echtzeitdatenbank.

Warum Sie möglicherweise immer noch die Echtzeitdatenbank verwenden möchten - Es gibt einige Gründe. 1) Das Ganze "Es wird wahrscheinlich billiger für Apps, die viele häufige Updates durchführen", was ich bereits erwähnt habe. 2) Es gibt es schon lange und es wurde von Tausenden von Apps im Kampf getestet. 3) Es hat eine bessere Latenz und wenn Sie etwas mit zuverlässig geringer Latenz für ein Echtzeitgefühl benötigen, funktioniert die Echtzeitdatenbank möglicherweise besser.

Für die meisten neuen Apps empfehlen wir Ihnen, den Cloud Firestore zu besuchen. Wenn Sie jedoch eine App haben, die bereits in der Echtzeitdatenbank enthalten ist, empfehle ich nicht wirklich, nur um zu wechseln, es sei denn, Sie haben einen zwingenden Grund dafür.

Hoffentlich hilft das!

Todd Kerpelman
quelle
2
Vielen Dank Todd! Ich habe den Ankündigungspost gesehen, aber nicht diesen! Ich bin total verliebt in Firestore, leider muss ich jetzt mein gesamtes RxJava, das für dieses xD verpackt ist, neu schreiben.
Francisco Durdin Garcia
1
Wie passt Google Cloud Datastore dazu? Naiv scheint es viele Überschneidungen mit Cloud Firestore zu geben. @ToddKerpelman
Jon G
2
Es hat viel mit Cloud Datastore gemeinsam. Der größte Unterschied besteht in der Integration in Firebase, sodass Sie Zugriff auf die Mobil- und Web-SDKs sowie auf einen nativen Offline-Modus und die Echtzeit-Synchronisierungsfunktionen haben. Der Cloud-Datenspeicher eignet sich hervorragend für die umfangreiche serverseitige Entwicklung, bei der Sie Ihre eigene Verbindung zu Ihrer App verwalten, z. B. Ihre eigene Website in App Engine oder über Compute / Container Engine ausführen.
Todd Kerpelman
2
Was bedeutet "starke Konsistenz" wirklich? Das CAP-Theorem besagt , dass Sie in einer verteilten und verfügbaren Umgebung nicht "sicher sein können, dass Sie die neueste Version Ihrer Daten erhalten". Konsistenz, Verfügbarkeit, Partitionstoleranz => wählen Sie 2.
AjahnCharles
1
@ToddKerpelman Jede Möglichkeit, einen Vergleich zwischen Cloud Firestore und Cloud Datastore durchzuführen. Die beiden scheinen sich schrecklich ähnlich zu sein.
TheAddonDepot
63

Sie können den gesamten Artikel hier lesen: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0

Firebase Realtime databaseDies ist als JSON-Baum strukturiert, Cloud Firestorees werden jedoch Daten in den Formaten Dokumente (eine Reihe von Schlüssel-Wert-Paaren) und Sammlungen (eine Sammlung von Dokumenten) gespeichert.

Weitere Strukturdaten

Die Echtzeitdatenbank hat Daten im JSON-Baum gespeichert, aber der Cloud-Firestore hat Daten in Dokumenten gespeichert, die JSON sehr ähnlich sind. Geben Sie hier die Bildbeschreibung ein

In Cloud FireStore können Dokumente Untersammlungen und verschachtelte Objekte (wie "Telefon" in der obigen Abbildung) enthalten. Beide können primitive Felder wie Zeichenfolgen (wie "Name", "E-Mail" usw. in der obigen Abbildung) oder komplexe Objekte wie enthalten Listen.

Besser abfragen

  • In der Echtzeitdatenbank können wir nur eine Eigenschaft in einer einzelnen Abfrage sortieren oder filtern, nicht eine Eigenschaft sortieren und filtern, während Sie im Cloud FireStore Filter verketten und das Filtern und Sortieren einer Eigenschaft in einer einzelnen Abfrage kombinieren können.
  • Wenn Sie Daten in absteigender Reihenfolge abrufen möchten, ist Cloud fireStore für Sie sehr nützlich, für die Echtzeitdatenbank ist jedoch keine Abfragefunktion verfügbar. Geben Sie hier die Bildbeschreibung ein
  • Sie können auch mehrere "where" -Methoden verketten, um spezifischere Abfragen (logisches UND) in Cloud FireStore zu erstellen. Geben Sie hier die Bildbeschreibung ein

Skalierbarkeit

Cloud Firestore kann besser skaliert werden als die Echtzeitdatenbank. Es ist wichtig zu beachten, dass Ihre Abfrageleistung proportional zur Größe Ihrer Ergebnismenge und nicht Ihrer Datenmenge ist. Die Suche bleibt also schnell, egal wie groß Ihr Datensatz wird.

Manuelles Abrufen von Daten

Wir können Daten in Echtzeit im Cloud FireStore wie in der Echtzeitdatenbank abhören, aber im Cloud FireStore können wir Daten auch manuell abrufen (wenn Sie Daten nur einmal abrufen möchten).

Sicherheit

In der Echtzeitdatenbank müssen Daten mithilfe der Validierungsregel separat validiert werden. Im Cloud FireStore erfolgt die Datenvalidierung jedoch automatisch.

Daten schreiben

Wir können mehrere Operationen als eine einzelne Charge ausführen und vervollständigen sie atomar, mit einer beliebigen Kombination der set(), update()oder delete()Methoden. Geben Sie hier die Bildbeschreibung ein

Preisgestaltung

In der Echtzeitdatenbank werden nur Gebühren für Bandbreite und Speicher berechnet, jedoch mit einer höheren Rate. Im Cloud FireStore werden Gebühren hauptsächlich für Vorgänge in Ihrer Datenbank (Lesen, Schreiben, Löschen) und bei geringerer Rate für Bandbreite und Speicher berechnet.

0xAliHn
quelle
12
Es wäre schön, den Originalartikel zu verlinken: medium.com/@beingrahul/…
Salem Ouerdani
1
Können Sie genauer erklären, was "Datenvalidierung erfolgt automatisch" bedeutet?
SoEzPz
12

Gründe, Cloud Firestore anstelle von Realtime Database zu wählen

Es ist eine verbesserte Version

Die Firebase-Datenbank reichte für grundlegende Anwendungen aus. Es war jedoch nicht leistungsfähig genug, um komplexe Anforderungen zu erfüllen. Aus diesem Grund wird der Cloud Firestore eingeführt. Hier sind einige wichtige Änderungen.

  • Die grundlegende Dateistruktur wird verbessert.
  • Offline-Support für den Webclient.
  • Unterstützt erweiterte Abfragen.
  • Schreib- und Transaktionsoperationen sind atomar.
  • Zuverlässigkeits- und Leistungsverbesserungen
  • Die Skalierung erfolgt automatisch.
  • Wird sicherer sein.

Preisgestaltung

Im Cloud Firestore sind die Raten gesunken, obwohl die Gebühren hauptsächlich für Vorgänge in Ihrer Datenbank sowie für Bandbreite und Speicher berechnet werden. Sie können auch ein tägliches Ausgabenlimit festlegen. Hier finden Sie alle Details zur Abrechnung.

Zukunftspläne von Google

Als sie die Fehler in der Echtzeitdatenbank entdeckten, erstellten sie ein anderes Produkt, anstatt das alte zu verbessern. Obwohl es keine verlässlichen Details gibt, die ihre aktuelle Position in der Echtzeitdatenbank offenbaren, ist es an der Zeit zu glauben, dass sie wahrscheinlich aufgegeben werden.



Bertram Gilfoyle
quelle
2

Schlagen Sie auch einen Link von Google vor: Firebase Real-Time Database vs FireStore

Aus Google Docs extrahiert, eine kleine Zusammenfassung hier:

FireBase Real Time DB ist eine JSON-basierte NO SQL- Datenbank , die für regionale regionale Apps gedacht ist und normalerweise zum Speichern und Synchronisieren von Daten zwischen Benutzern / Geräten in Echtzeit / mit extrem geringer Latenz verwendet wird.

FireStore ist eine JSON-ähnliche NOSQL-Datenbank, die für eine hohe Parallelität und globale Persistenz mit einfacher automatischer Skalierung gedacht ist und für alle Clients (nicht nur für mobile Apps) mit typischen Anwendungsfällen wie Asset-Tracking, Echtzeitanalyse, Erstellung von Produktkatalogen für den Einzelhandel und soziale Benutzer entwickelt wurde Profil, Gaming-Bestenlisten, Chat-basierte Anwendungen usw.

TechFree
quelle