Firebase oferuje dwa oparte na chmurze, dostępne dla klienta rozwiązania bazodanowe, które obsługują synchronizację danych w czasie rzeczywistym:
Cloud Firestore to najnowsza baza danych Firebase do tworzenia aplikacji mobilnych. Opiera się na sukcesach bazy danych czasu rzeczywistego z nowym, bardziej intuicyjnym modelem danych. Cloud Firestore oferuje również bogatsze, szybsze zapytania i większe możliwości skalowania niż baza danych czasu rzeczywistego.
Baza danych czasu rzeczywistego to oryginalna baza danych Firebase. Jest to wydajne rozwiązanie o niskich opóźnieniach dla aplikacji mobilnych, które wymagają synchronizacji stanów między klientami w czasie rzeczywistym.
Którą bazę danych poleca Firebase?
Twój wybór rozwiązania bazodanowego będzie zależał od wielu czynników, ale jeśli chodzi o niektóre funkcje, możemy doradzić, która baza danych jest dla Ciebie odpowiednia.
Oba rozwiązania oferują:
- Zestawy SDK zorientowane na klienta, bez serwerów do wdrożenia i utrzymania
- Aktualizacje w czasie rzeczywistym
- Bezpłatna warstwa, a następnie płać za to, czego używasz
Kluczowe kwestie
Poza doskonałymi podstawowymi funkcjami wspólnymi dla obu baz danych, zastanów się, w jaki sposób niektóre lub wszystkie wymienione poniżej kwestie wpłyną na powodzenie Twoich aplikacji.
Rola bazy danych | Moja aplikacja korzysta z bazy danych dla... Przede wszystkim synchronizacja danych z podstawowymi zapytaniami. Jeśli nie potrzebujesz zaawansowanych zapytań, sortowania i transakcji, polecamy Bazę Danych Czasu Rzeczywistego . Zaawansowane zapytania, sortowanie i transakcje. Jeśli potrzebujesz skomplikowanych interakcji ze swoimi danymi, na przykład w aplikacjach e-commerce, polecamy Cloud Firestore . |
Operacje na danych | Użycie bazy danych przez moją aplikację wygląda tak... Kilka GB lub mniej danych, które często się zmieniają. Jeśli Twoja aplikacja będzie wysyłać strumień drobnych aktualizacji, na przykład w aplikacji do tablicy cyfrowej, zalecamy Bazę danych czasu rzeczywistego . Setki GB do TB danych, które są odczytywane znacznie częściej niż zmieniane. W przypadku bardzo dużych zbiorów danych i często potrzebnych operacji wsadowych zalecamy Cloud Firestore . |
Model danych | Wolę uporządkować moje dane jako... Proste drzewo JSON. W przypadku nieustrukturyzowanych danych JSON zalecamy Realtime Database . Dokumenty zorganizowane w kolekcje. W przypadku ustrukturyzowanych dokumentów i kolekcji zalecamy Cloud Firestore . |
Dostępność | Moje wymagania dotyczące dyspozycyjności to... Niezwykle wysoka gwarancja dostępności na poziomie 99,999%. Jeśli dostępność ma ogromne znaczenie, na przykład w aplikacjach e-commerce, polecamy Cloud Firestore . Gwarancja nieprzerwanej pracy przez co najmniej 99,95%. Gdy akceptowalna jest bardzo wysoka, ale nie krytyczna dostępność, zalecamy Cloud Firestore lub Realtime Database . |
Zapytania offline dotyczące danych lokalnych | Moja aplikacja będzie musiała wykonywać zapytania na urządzeniach z ograniczoną łącznością lub bez łączności... Często. Aby uzyskać zaawansowane możliwości wykonywania zapytań dotyczących danych lokalnych, gdy użytkownik jest offline, zalecamy Cloud Firestore . Rzadko lub nigdy. Jeśli oczekujesz, że Twoi użytkownicy będą stale online, zalecamy Cloud Firestore lub Realtime Database . |
Liczba instancji bazy danych | W moich indywidualnych projektach muszę wykorzystywać... Wiele baz danych, na przykład baza danych dla każdego głównego klienta. Ponieważ umożliwia dodanie wielu baz danych do jednego projektu Firebase, zalecamy Realtime Database . Tylko jedna baza danych. Jeśli potrzebujesz jednej bazy danych, zalecamy Cloud Firestore lub Realtime Database . |
Jakie inne ważne kwestie należy wziąć pod uwagę?
Po przemyśleniu poprzednich kluczowych kwestii możesz być gotowy do wyboru bazy danych . Jeśli nadal zastanawiasz się nad zaletami i wadami, w tej sekcji omówiono inne różnice między Cloud Firestore a bazą danych czasu rzeczywistego.
Model danych
Zarówno baza danych czasu rzeczywistego, jak i Cloud Firestore to bazy danych NoSQL.
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Przechowuje dane jako jedno duże drzewo JSON.
Dowiedz się więcej o modelu danych bazy danych czasu rzeczywistego . | Przechowuje dane jako zbiory dokumentów.
Dowiedz się więcej o modelu danych Cloud Firestore . |
Wsparcie w czasie rzeczywistym i offline
Obie mają mobilne zestawy SDK działające w czasie rzeczywistym i obie obsługują lokalne przechowywanie danych dla aplikacji gotowych do pracy w trybie offline.
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Wsparcie offline dla klientów Apple i Android. | Wsparcie offline dla klientów Apple, Android i internetowych. |
Obecność
Wiedza o tym, kiedy klient jest online, a kiedy offline, może być przydatna. Baza danych czasu rzeczywistego Firebase może rejestrować stan połączenia klienta i zapewniać aktualizacje za każdym razem, gdy zmienia się stan połączenia klienta.
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Obsługiwana obecność. | Nieobsługiwane natywnie. Możesz wykorzystać obsługę bazy danych czasu rzeczywistego w zakresie obecności, synchronizując Cloud Firestore i bazę danych czasu rzeczywistego za pomocą Cloud Functions. Zobacz Budowanie obecności w Cloud Firestore . |
zapytanie
Pobieraj, sortuj i filtruj dane z dowolnej bazy danych za pomocą zapytań.
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Głębokie zapytania z ograniczoną funkcjonalnością sortowania i filtrowania .
| Indeksowane zapytania z sortowaniem i filtrowaniem złożonym .
|
Zapisy i transakcje
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Podstawowe operacje zapisu i transakcji.
| Zaawansowane operacje zapisu i transakcji.
|
Niezawodność i wydajność
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Baza danych czasu rzeczywistego to rozwiązanie regionalne.
| Cloud Firestore to regionalne i wieloregionalne rozwiązanie, które skaluje się automatycznie.
|
Skalowalność
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Skalowanie wymaga fragmentacji.
| Skalowanie jest automatyczne.
|
Bezpieczeństwo
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Kaskadowy język reguł oddzielający autoryzację od walidacji.
| Reguły niekaskadowe, które łączą autoryzację i walidację.
|
cennik
Oba rozwiązania są dostępne w planach cenowych Spark i Blaze .
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Opłaty tylko za przepustowość i pamięć masową , ale według wyższej stawki. Przeczytaj więcej o planach cenowych bazy danych czasu rzeczywistego . | Opłaty dotyczą głównie operacji wykonywanych w bazie danych (odczyt, zapis, usuwanie) oraz, po niższej stawce, opłaty za przepustowość i pamięć masową. Cloud Firestore obsługuje dzienne limity wydatków dla projektów App Engine, aby mieć pewność, że nie przekroczysz kosztów, które Ci odpowiadają. Przeczytaj więcej o planach cenowych Cloud Firestore . |
Korzystanie z Cloud Firestore i bazy danych czasu rzeczywistego
Możesz używać obu baz danych w tej samej aplikacji lub projekcie Firebase. Obie bazy danych NoSQL mogą przechowywać te same typy danych, a biblioteki klienckie działają w podobny sposób. Pamiętaj o różnicach opisanych powyżej, jeśli zdecydujesz się używać obu baz danych w swojej aplikacji .
Dowiedz się więcej o funkcjach dostępnych w Realtime Database i Cloud Firestore .
Gotowy do wyboru bazy danych?
Mamy nadzieję, że to porównanie pomogło Ci zdecydować się na rozwiązanie bazodanowe Firebase. Teraz możesz dowiedzieć się, jak dodać bazę danych do projektów Firebase.
- W przypadku Cloud Firestore zapoznaj się z artykułem Pierwsze kroki z Cloud Firestore .
- W przypadku bazy danych czasu rzeczywistego przeczytaj temat Pierwsze kroki dla swojej platformy: Apple , Android , C++ , Unity , Web lub REST .