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!