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. Bazuje na sukcesach Bazy Danych Czasu Rzeczywistego z nowym, bardziej intuicyjnym modelem danych. Cloud Firestore oferuje również bogatsze i szybsze zapytania oraz skaluje dalej niż Baza danych czasu rzeczywistego.
Baza danych czasu rzeczywistego to oryginalna baza danych Firebase. Jest to wydajne rozwiązanie o niewielkich opóźnieniach dla aplikacji mobilnych, które wymagają zsynchronizowania 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 niektóre funkcje, możemy zasugerować, która baza danych jest dla Ciebie odpowiednia.
Oba rozwiązania oferują:
- Pakiety SDK zorientowane na klienta, bez serwerów do wdrożenia i utrzymania
- Aktualizacje w czasie rzeczywistym
- Poziom bezpłatny, a następnie zapłać za to, z czego korzystasz
Kluczowe kwestie
Oprócz świetnych podstawowych funkcji wspólnych dla obu baz danych, zastanów się, jak niektóre lub wszystkie z poniższych kwestii wpłyną na sukces 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 Realtime Database . Zaawansowane zapytania, sortowanie i transakcje. Jeśli potrzebujesz złożonych 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 następująco... 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 obsługi cyfrowej tablicy, zalecamy Bazę danych czasu rzeczywistego . Setki GB na TB danych, które są czytane znacznie częściej niż są zmieniane. W przypadku bardzo dużych zbiorów danych oraz gdy często potrzebne są operacje wsadowe, zalecamy Cloud Firestore . |
Model danych | Wolę uporządkować moje dane jako... Proste drzewo JSON. W przypadku danych nieustrukturyzowanych JSON zalecamy Realtime Database . Dokumenty zorganizowane w kolekcje. W przypadku uporządkowanych dokumentów i zbiorów zalecamy Cloud Firestore . |
Dostępność | Moje potrzeby dotyczące dostępności to... Niezwykle wysoka gwarancja bezawaryjnej pracy na poziomie 99,999%. Jeśli dostępność jest najważniejsza, na przykład w aplikacjach e-commerce, polecamy Cloud Firestore . Gwarancja co najmniej 99,95% czasu sprawności. Gdy akceptowalna jest bardzo wysoka, ale nie krytyczna dostępność, zalecamy Cloud Firestore lub Baza danych czasu rzeczywistego . |
Zapytania offline dotyczące danych lokalnych | Moja aplikacja będzie musiała wykonywać zapytania na urządzeniach z ograniczoną łącznością lub bez połączenia... Często. Aby uzyskać zaawansowane możliwości zapytań o dane lokalne, 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 Bazę danych czasu rzeczywistego . |
Liczba instancji bazy danych | W moich projektach indywidualnych potrzebuję... Wiele baz danych, na przykład baza danych dla każdego głównego klienta. Ponieważ pozwala dodać wiele baz danych do jednego projektu Firebase, zalecamy Bazę danych czasu rzeczywistego . Tylko jedna baza danych. Jeśli potrzebujesz jednej bazy danych, zalecamy Cloud Firestore lub Baza danych czasu rzeczywistego . |
Jakie są inne ważne rzeczy do rozważenia?
Po przemyśleniu poprzednich kluczowych rozważań 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 są bazami danych NoSQL.
Baza danych czasu rzeczywistego | Cloud 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
Oba 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 | Cloud Firestore |
---|---|
Wsparcie offline dla klientów Apple Android. | Wsparcie offline dla Apple, Androida i klientów internetowych. |
Obecność
Warto wiedzieć, kiedy klient jest online lub offline. Baza danych czasu rzeczywistego Firebase może rejestrować stan połączenia klienta i dostarczać aktualizacje za każdym razem, gdy stan połączenia klienta się zmienia.
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Obecność wspierana. | Nieobsługiwane natywnie. Możesz wykorzystać obsługę obecności przez Bazę danych czasu rzeczywistego, synchronizując Cloud Firestore i Bazę danych czasu rzeczywistego za pomocą Cloud Functions. Zobacz Budowanie obecności w Cloud Firestore . |
Zapytania
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 .
| Zapytania indeksowane ze złożonym sortowaniem i filtrowaniem .
|
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 rozwiązanie regionalne i wieloregionalne, które skaluje się automatycznie.
|
Skalowalność
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Skalowanie wymaga shardingu.
| Skalowanie jest automatyczne.
|
Bezpieczeństwo
Baza danych czasu rzeczywistego | Cloud Firestore |
---|---|
Język reguł kaskadowych, który oddziela autoryzację i walidację.
| 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 przechowywanie , ale według wyższej stawki. Przeczytaj więcej o planach cenowych Bazy danych czasu rzeczywistego . | Opłaty głównie za operacje wykonywane w Twojej bazie danych (odczyt, zapis, usuwanie) oraz, przy niższej stawce, za przepustowość i pamięć. Cloud Firestore obsługuje dzienne limity wydatków na projekty App Engine, dzięki czemu nie przekroczysz kosztów, które są dla Ciebie wygodne. Dowiedz się 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 zarówno w Bazie danych czasu rzeczywistego , 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.
- W przypadku Cloud Firestore zapoznaj się z artykułem Pierwsze kroki z Cloud Firestore .
- W przypadku Bazy danych czasu rzeczywistego przeczytaj temat Pierwsze kroki dotyczący Twojej platformy: Apple , Android , C++ , Unity , Web lub REST .