Firebase bietet zwei cloudbasierte, für den Client zugängliche Datenbanklösungen, die die Datensynchronisierung in Echtzeit unterstützen:
Cloud Firestore ist die neueste Datenbank von Firebase für die Entwicklung mobiler Apps. Es baut auf den Erfolgen der Realtime Database mit einem neuen, intuitiveren Datenmodell auf. Cloud Firestore bietet außerdem umfangreichere, schnellere Abfragen und lässt sich weiter skalieren als die Echtzeitdatenbank.
Die Echtzeitdatenbank ist die Originaldatenbank von Firebase. Es handelt sich um eine effiziente Lösung mit geringer Latenz für mobile Apps, die synchronisierte Zustände aller Clients in Echtzeit 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 Ihnen Empfehlungen geben, welche Datenbank für Sie die richtige ist.
Beide Lösungen bieten:
- Client-First-SDKs, ohne dass Server bereitgestellt und gewartet werden müssen
- Echtzeit-Updates
- Kostenloses Kontingent, dann zahlen Sie für das, was Sie nutzen
Wichtige Überlegungen
Denken Sie neben den großartigen Kernfunktionen, die beiden Datenbanken gemeinsam sind, darüber nach, 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... In erster Linie Daten synchronisieren, mit einfachen Abfragen. Wenn Sie keine erweiterten Abfragen, Sortierungen und Transaktionen benötigen, empfehlen wir Realtime Database . Erweiterte Abfragen, Sortierungen und Transaktionen. Wenn Sie komplexe Interaktionen mit Ihren Daten benötigen, beispielsweise in E-Commerce-Apps, empfehlen wir Cloud Firestore . |
Operationen an Daten | Die Datenbanknutzung meiner App sieht folgendermaßen aus: Wenige GB oder weniger Daten, die sich häufig ändern. Wenn Ihre App einen Strom winziger Updates sendet, z. B. in einer digitalen Whiteboard-App, empfehlen wir Realtime Database . Hunderte GB bis TB an Daten, die viel häufiger gelesen als geändert werden. Für sehr große Datensätze und wenn häufig Batch-Vorgänge erforderlich sind, empfehlen wir Cloud Firestore . |
Datenmodell | Ich bevorzuge es, meine Daten wie folgt zu strukturieren: Ein einfacher JSON-Baum. Für unstrukturierte JSON-Daten empfehlen wir Realtime Database . In Sammlungen organisierte Dokumente. Für strukturierte Dokumente und Sammlungen empfehlen wir Cloud Firestore . |
Verfügbarkeit | Meine Verfügbarkeitsanforderungen sind... Extrem hohe Verfügbarkeitsgarantie von 99,999 %. Wenn die Verfügbarkeit von größter Bedeutung ist, beispielsweise bei E-Commerce-Apps, empfehlen wir Cloud Firestore . Eine Garantie von mindestens 99,95 % Verfügbarkeit. Wenn eine sehr hohe, aber nicht kritische Verfügbarkeit akzeptabel ist, empfehlen wir entweder Cloud Firestore oder Realtime Database . |
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 ausgefeilte Abfragefunktionen für lokale Daten, wenn der Benutzer offline ist, empfehlen wir Cloud Firestore . Selten oder nie. Wenn Sie erwarten, dass Ihre Benutzer durchgehend online sind, empfehlen wir Cloud Firestore oder Realtime Database . |
Was gibt es sonst noch zu beachten?
Nachdem Sie über die vorherigen wichtigen Überlegungen nachgedacht haben, sind Sie möglicherweise bereit, eine Datenbank auszuwä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.
Echtzeitdatenbank | Cloud Firestore |
---|---|
Speichert Daten als einen großen JSON-Baum.
Erfahren Sie mehr über das Datenmodell der Echtzeitdatenbank . | Speichert Daten als Dokumentensammlungen.
Erfahren Sie mehr über das Cloud Firestore-Datenmodell . |
Echtzeit- und Offline-Unterstützung
Beide verfügen über Mobile-First-Echtzeit-SDKs und unterstützen die lokale Datenspeicherung für offline-fähige Apps.
Echtzeitdatenbank | Cloud Firestore |
---|---|
Offline-Unterstützung für Apple- und Android-Clients. | Offline-Unterstützung für Apple-, Android- und Web-Clients. |
Gegenwart
Es kann nützlich sein zu wissen, wann ein Client online oder offline ist. Die Firebase-Echtzeitdatenbank kann den Verbindungsstatus des Clients aufzeichnen und jedes Mal Aktualisierungen bereitstellen, wenn sich der Verbindungsstatus des Clients ändert.
Echtzeitdatenbank | Cloud Firestore |
---|---|
Präsenz unterstützt. | Wird nicht nativ unterstützt. Sie können die Anwesenheitsunterstützung von Realtime Database nutzen, indem Sie Cloud Firestore und Realtime Database mithilfe von Cloud Functions synchronisieren. Siehe Präsenz im Cloud Firestore aufbauen . |
Abfragen
Rufen Sie Daten aus beiden Datenbanken über Abfragen ab, sortieren und filtern Sie sie.
Echtzeitdatenbank | Cloud Firestore |
---|---|
Umfangreiche Abfragen mit eingeschränkter Sortier- und Filterfunktionalität .
| Indizierte Abfragen mit zusammengesetzter Sortierung und Filterung .
|
Schreibvorgänge und Transaktionen
Echtzeitdatenbank | Cloud Firestore |
---|---|
Grundlegende Schreib- und Transaktionsoperationen.
| Erweiterte Schreib- und Transaktionsvorgänge.
|
Zuverlässigkeit und Leistung
Echtzeitdatenbank | Cloud Firestore |
---|---|
Realtime Database ist eine regionale Lösung.
| Cloud Firestore ist eine regionale und multiregionale Lösung, die automatisch skaliert.
|
Skalierbarkeit
Echtzeitdatenbank | Cloud Firestore |
---|---|
Die Skalierung erfordert Sharding.
| Die Skalierung erfolgt automatisch.
|
Sicherheit
Echtzeitdatenbank | Cloud Firestore |
---|---|
Kaskadierende Regelsprache, die Autorisierung und Validierung trennt.
| Nicht kaskadierende Regeln, die Autorisierung und Validierung kombinieren.
|
Preisgestaltung
Beide Lösungen sind in den Preisplänen Spark und Blaze verfügbar.
Echtzeitdatenbank | Cloud Firestore |
---|---|
Es fallen nur Gebühren für Bandbreite und Speicher an , jedoch zu einem höheren Preis. Erfahren Sie mehr über die Preispläne für Echtzeitdatenbanken . | Gebühren fallen hauptsächlich für in Ihrer Datenbank ausgeführte Vorgänge (Lesen, Schreiben, Löschen) und, zu einem geringeren Preis, für Bandbreite und Speicher an. Cloud Firestore unterstützt tägliche Ausgabenlimits für App Engine-Projekte, um sicherzustellen, dass Sie die Kosten, mit denen Sie einverstanden sind, nicht überschreiten. Erfahren Sie mehr über die Preispläne für Cloud Firestore . |
Verwendung von Cloud Firestore und Echtzeitdatenbank
Sie können beide Datenbanken innerhalb derselben Firebase-App oder desselben Firebase-Projekts verwenden. Beide NoSQL-Datenbanken können die gleichen Datentypen speichern und die Client-Bibliotheken funktionieren auf ähnliche Weise. Beachten Sie die oben beschriebenen Unterschiede, wenn Sie sich für die Verwendung beider Datenbanken in Ihrer App entscheiden.
Erfahren Sie mehr über die Funktionen, die sowohl in Realtime Database als auch in Cloud Firestore verfügbar sind.
Sind Sie bereit, eine Datenbank auszuwählen?
Hoffentlich hat Ihnen dieser Vergleich dabei geholfen, sich für eine Firebase-Datenbanklösung zu entscheiden. Jetzt erfahren Sie, wie Sie Ihren Firebase-Projekten eine Datenbank hinzufügen.
- Informationen zu Cloud Firestore finden Sie unter Erste Schritte mit Cloud Firestore .
- Lesen Sie für Echtzeitdatenbank das Thema „Erste Schritte“ für Ihre Plattform: Apple , Android , C++ , Unity , Web oder REST .