Firebase oferuje dwa oparte na chmurze, dostępne dla klienta rozwiązania baz danych, 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 Realtime Database i oferuje nowy, bardziej intuicyjny model danych. Cloud Firestore oferuje także bogatsze, szybsze zapytania i skaluje się dalej niż baza danych czasu rzeczywistego.
Baza danych czasu rzeczywistego to oryginalna baza danych Firebase. To wydajne rozwiązanie o niskim opóźnieniu dla aplikacji mobilnych, które wymagają zsynchronizowanych stanów między klientami w czasie rzeczywistym.
Którą bazę danych poleca Firebase?
Wybór rozwiązania bazodanowego będzie zależał od wielu czynników, ale jeśli chodzi o określone funkcje, możemy zasugerować, która baza danych będzie dla Ciebie odpowiednia.
Obydwa rozwiązania oferują:
- Zestawy SDK zorientowane na klienta, bez serwerów wymagających wdrażania i konserwacji
- Aktualizacje w czasie rzeczywistym
- Poziom bezpłatny, a następnie płać za to, z czego korzystasz
Kluczowe kwestie
Poza świetnymi 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 sukces Twoich aplikacji.
Rola bazy danych | Moja aplikacja korzysta z bazy danych do... Przede wszystkim synchronizacja danych z podstawowymi zapytaniami. Jeśli nie potrzebujesz zaawansowanych zapytań, sortowania i transakcji, polecamy Realtime Database . Zaawansowane zapytania, sortowanie i transakcje. Jeśli potrzebujesz skomplikowanych interakcji z danymi, na przykład w aplikacjach e-commerce, polecamy Cloud Firestore . |
Operacje na danych | Użycie bazy danych przez moją aplikację wygląda... 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 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 gdy często potrzebne są operacje wsadowe, zalecamy Cloud Firestore . |
Model danych | Wolę strukturyzować moje dane jako... Proste drzewo JSON. W przypadku danych nieustrukturyzowanych JSON zalecamy usługę Realtime Database . Dokumenty zorganizowane w zbiory. W przypadku uporządkowanych dokumentów i kolekcji zalecamy Cloud Firestore . |
Dostępność | Moje wymagania dotyczące dostępności to... Niezwykle wysoka gwarancja dostępności na poziomie 99,999%. Jeśli dostępność jest dla nas najważniejsza, np. w aplikacjach e-commerce, polecamy Cloud Firestore . Gwarancja dostępności 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 niej... Często. Aby uzyskać zaawansowane możliwości odpytywania 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 . |
Jakie jeszcze ważne kwestie należy wziąć pod uwagę?
Po przemyśleniu poprzednich kluczowych kwestii możesz być gotowy na wybór bazy danych . Jeśli nadal rozważasz zalety i wady, 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 są bazami danych NoSQL.
Baza danych czasu rzeczywistego | Chmura Firestore |
---|---|
Przechowuje dane jako jedno duże drzewo JSON.
Dowiedz się więcej o modelu danych Realtime Database . | Przechowuje dane jako zbiory dokumentów.
Dowiedz się więcej o modelu danych Cloud Firestore . |
Wsparcie w czasie rzeczywistym i offline
Obydwa mają mobilne pakiety SDK działające w czasie rzeczywistym i oba obsługują lokalne przechowywanie danych dla aplikacji gotowych do pracy w trybie offline.
Baza danych czasu rzeczywistego | Chmura Firestore |
---|---|
Wsparcie offline dla klientów Apple i Android. | Wsparcie offline dla klientów Apple, Android i internetowych. |
Obecność
Przydatna może być informacja, kiedy klient jest online, a kiedy offline. Baza danych Firebase Realtime Database może rejestrować stan połączenia klienta i dostarczać aktualizacje za każdym razem, gdy zmienia się stan połączenia klienta.
Baza danych czasu rzeczywistego | Chmura Firestore |
---|---|
Obecność wspierana. | Nieobsługiwane natywnie. Możesz wykorzystać obsługę obecności w bazie danych Realtime Database, synchronizując Cloud Firestore i bazę danych Realtime Database 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 | Chmura Firestore |
---|---|
Głębokie zapytania z ograniczoną funkcjonalnością sortowania i filtrowania .
| Zapytania indeksowane ze złożonym sortowaniem i filtrowaniem .
|
Zapisy i transakcje
Baza danych czasu rzeczywistego | Chmura Firestore |
---|---|
Podstawowe operacje zapisu i transakcji.
| Zaawansowane operacje zapisu i transakcji.
|
Niezawodność i wydajność
Baza danych czasu rzeczywistego | Chmura Firestore |
---|---|
Baza danych czasu rzeczywistego jest rozwiązaniem regionalnym.
| Cloud Firestore to rozwiązanie regionalne i wieloregionowe, które skaluje się automatycznie.
|
Skalowalność
Baza danych czasu rzeczywistego | Chmura Firestore |
---|---|
Skalowanie wymaga fragmentowania.
| Skalowanie odbywa się automatycznie.
|
Bezpieczeństwo
Baza danych czasu rzeczywistego | Chmura Firestore |
---|---|
Język reguł kaskadowych oddzielający autoryzację od walidacji.
| Reguły niekaskadowe, które łączą autoryzację i walidację.
|
cennik
Obydwa rozwiązania dostępne są w planach cenowych Spark i Blaze .
Baza danych czasu rzeczywistego | Chmura Firestore |
---|---|
Opłaty tylko za przepustowość i miejsce na dane , ale według wyższej stawki. Przeczytaj więcej o planach cenowych Realtime Database . | Opłaty są pobierane głównie za operacje wykonywane w bazie danych (odczyt, zapis, usuwanie) oraz, w niższych cenach, za przepustowość i miejsce na dane. Cloud Firestore obsługuje dzienne limity wydatków na projekty 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. Jeśli zdecydujesz się na użycie obu baz danych w swojej aplikacji, pamiętaj o różnicach opisanych powyżej.
Dowiedz się więcej o funkcjach dostępnych zarówno w Realtime Database , jak i Cloud Firestore .
Gotowy do wyboru bazy danych?
Mamy nadzieję, że to porównanie pomogło Ci zdecydować się na rozwiązanie bazy danych Firebase. Teraz możesz dowiedzieć się, jak dodać bazę danych do swoich projektów Firebase.
- Jeśli chodzi o Cloud Firestore , zapoznaj się z artykułem Rozpoczęcie pracy z Cloud Firestore .
- W przypadku bazy danych czasu rzeczywistego przeczytaj temat Rozpoczęcie dla swojej platformy: Apple , Android , C++ , Unity , Web lub REST .