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.
firebase
firebase-realtime-database
google-cloud-platform
google-cloud-firestore
Francisco Durdin Garcia
quelle
quelle
Antworten:
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
once
Anrufe 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!
quelle
Sie können den gesamten Artikel hier lesen: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0
Firebase Realtime database
Dies ist als JSON-Baum strukturiert,Cloud Firestore
es 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.
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
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()
oderdelete()
Methoden.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.
quelle
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.
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.
quelle
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.
quelle