Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Wybierz bazę danych: Cloud Firestore lub Baza danych czasu rzeczywistego

Firebase oferuje dwa oparte na chmurze rozwiązania bazodanowe dostępne dla klientów, 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 także bogatsze, szybsze zapytania i skaluje się dalej niż baza danych czasu rzeczywistego.

  • Baza danych czasu rzeczywistego to oryginalna baza danych Firebase. Jest 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 niektóre funkcje, możemy doradzić, która baza danych jest dla Ciebie odpowiednia.

Oba rozwiązania oferują:

  • Zestawy SDK dla 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

Poza świetnymi podstawowymi funkcjami, które są wspólne dla obu baz danych, zastanów się, jak którekolwiek lub wszystkie wymienione poniżej kwestie wpłyną na sukces Twoich aplikacji.

Rola bazy danych
Moja aplikacja korzysta z bazy danych dla ...
Przede wszystkim synchronizowanie 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 złożonych interakcji z danymi, na przykład w aplikacjach e-commerce, polecamy Cloud Firestore .
Operacje na danych
Użycie bazy danych mojej aplikacji wygląda następująco ...
Kilka GB lub mniej danych, które często się zmieniają.
Jeśli Twoja aplikacja wysyła strumień drobnych aktualizacji, na przykład w aplikacji na tablicy cyfrowej, zalecamy Bazę danych czasu rzeczywistego .
Setki GB do TB danych, które są odczytywane znacznie częściej niż ulegają zmianie.
W przypadku bardzo dużych zbiorów danych i gdy operacje zbiorcze są często potrzebne, zalecamy Cloud Firestore .
Model danych
Wolę układać moje dane jako ...
Proste drzewo JSON.
W przypadku nieustrukturyzowanych danych JSON zalecamy Bazę danych czasu rzeczywistego .
Dokumenty zorganizowane w kolekcje.
W przypadku ustrukturyzowanych dokumentów i kolekcji zalecamy Cloud Firestore .
Dostępność
Moje potrzeby w zakresie dostępności to ...
Niezwykle wysoka gwarancja uptime 99,999%.
Jeśli dostępność ma ogromne znaczenie, na przykład w aplikacjach e-commerce, zalecamy Cloud Firestore .
Gwarancja co najmniej 99,95% czasu pracy.
Gdy bardzo wysoka, ale nie krytyczna dostępność jest akceptowalna, 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.
W celu uzyskania zaawansowanych możliwości wyszukiwania 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 swoich projektach indywidualnych potrzebuję ...
Wiele baz danych, na przykład baza danych dla każdego głównego klienta.
Ponieważ umożliwia dodawanie wielu baz danych do jednego projektu Firebase, zalecamy bazę danych czasu rzeczywistego .
Tylko jedna baza danych.
Jeśli potrzebujesz pojedynczej bazy danych, zalecamy Cloud Firestore lub Realtime Database .

Jakie inne ważne kwestie należy wziąć pod uwagę?

Po przemyśleniu poprzednich kluczowych rozważań możesz być gotowy do wyboru 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 Cloud Firestore
Przechowuje dane jako jedno duże drzewo JSON.
  • Proste dane są bardzo łatwe do przechowywania.
  • Złożone, hierarchiczne dane są trudniejsze do zorganizowania na dużą skalę.

Dowiedz się więcej o modelu danych bazy danych czasu rzeczywistego .

Przechowuje dane jako zbiory dokumentów.
  • Proste dane można łatwo przechowywać w dokumentach, które są bardzo podobne do JSON.
  • Złożone, hierarchiczne dane można łatwiej zorganizować na dużą skalę, korzystając z podkolekcji w dokumentach.
  • Wymaga mniej denormalizacji i spłaszczania danych.

Dowiedz się więcej o modelu danych Cloud Firestore .

Wsparcie w czasie rzeczywistym i offline

Oba mają mobilne pakiety SDK czasu rzeczywistego 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 iOS i Android. Wsparcie offline dla klientów iOS, Android i internetowych.

Obecność

Warto wiedzieć, kiedy klient jest online lub offline. 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 skorzystać z obsługi obecności w Realtime Database, synchronizując Cloud Firestore i 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 Cloud Firestore
Głębokie zapytania z ograniczoną funkcjonalnością sortowania i filtrowania .
  • Zapytania mogą sortować lub filtrować według właściwości, ale nie jednocześnie.
  • Zapytania są domyślnie głębokie: zawsze zwracają całe poddrzewo.
  • Zapytania mogą uzyskiwać dostęp do danych na dowolnym poziomie szczegółowości, aż do poszczególnych wartości węzłów liścia w drzewie JSON.
  • Zapytania nie wymagają indeksu; jednak wydajność niektórych zapytań spada wraz ze wzrostem zestawu danych.
Zapytania indeksowane ze złożonym sortowaniem i filtrowaniem .
  • Możesz łączyć filtry w łańcuchy i łączyć filtrowanie i sortowanie na właściwości w jednym zapytaniu.
  • Zapytania są płytkie: zwracają tylko dokumenty z określonej kolekcji lub grupy kolekcji i nie zwracają danych z podkolekcji.
  • Zapytania muszą zawsze zwracać całe dokumenty.
  • Zapytania są indeksowane domyślnie: wydajność zapytania jest proporcjonalna do rozmiaru zestawu wyników, a nie zestawu danych.

Pisma i transakcje

Baza danych czasu rzeczywistego Cloud Firestore
Podstawowe operacje zapisu i transakcji.
  • Zapisuj dane za pomocą operacji ustawiania i aktualizacji.
  • Transakcje są niepodzielne w określonym poddrzewie danych.
Zaawansowane operacje zapisu i transakcji.
  • Zapisuj operacje na danych za pomocą operacji ustawiania i aktualizacji, a także zaawansowanych transformacji, takich jak operatory tablicowe i numeryczne.
  • Transakcje mogą niepodzielnie odczytywać i zapisywać dane z dowolnej części bazy danych.

Niezawodność i wydajność

Baza danych czasu rzeczywistego Cloud Firestore
Baza danych czasu rzeczywistego jest rozwiązaniem obejmującym jeden region.
  • Bazy danych są ograniczone do strefowej dostępności w jednym regionie.
  • Ekstremalnie niskie opóźnienia, idealna opcja do częstej synchronizacji stanu.
Przeczytaj więcej na temat wydajności i niezawodności bazy danych czasu rzeczywistego w umowie o gwarantowanym poziomie usług .
Cloud Firestore to rozwiązanie obejmujące wiele regionów, które skaluje się automatycznie.
  • Przechowuje dane w wielu centrach danych w różnych regionach, zapewniając globalną skalowalność i wysoką niezawodność.
  • Dostępne w konfiguracjach regionalnych lub multiregionalnych na całym świecie.
Przeczytaj więcej o charakterystyce wydajności i niezawodności Cloud Firestore w umowie dotyczącej poziomu usług .

Skalowalność

Baza danych czasu rzeczywistego Cloud Firestore
Skalowanie wymaga fragmentowania.
  • Skalowanie do około 200 000 jednoczesnych połączeń i 1000 zapisów na sekundę w jednej bazie danych. Wykraczanie poza to wymaga podzielenia danych na fragmenty w wielu bazach danych.
  • Brak lokalnych ograniczeń szybkości zapisu poszczególnych elementów danych.
Skalowanie jest automatyczne.
  • Wagi całkowicie automatycznie. Obecnie limity skalowania wynoszą około 1 miliona jednoczesnych połączeń i 10 000 zapisów na sekundę. W przyszłości planujemy zwiększyć te limity.
  • Ma ograniczenia dotyczące szybkości zapisu do poszczególnych dokumentów lub indeksów.

Bezpieczeństwo

Baza danych czasu rzeczywistego Cloud Firestore
Kaskadowy język reguł oddzielający autoryzację i walidację. Reguły niekaskadowe, które łączą autoryzację i walidację.
  • Odczytuje i zapisuje z mobilnych SDK zabezpieczonych przez reguły bezpieczeństwa Cloud Firestore .
  • Odczytuje i zapisuje z serwerów SDK zabezpieczonych przez zarządzanie tożsamością i dostępem (IAM) .
  • Reguły nie są kaskadowe, chyba że używasz symbolu wieloznacznego.
  • Reguły mogą ograniczać zapytania: jeśli wyniki zapytania mogą zawierać dane, do których użytkownik nie ma dostępu, całe zapytanie kończy się niepowodzeniem.

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 z wyższą stawką.

Przeczytaj więcej o planach cenowych bazy danych czasu rzeczywistego .

Opłaty dotyczą głównie operacji wykonywanych w bazie danych (odczyt, zapis, usuwanie) oraz, przy niższej szybkości, przepustowości i pamięci masowej.

Cloud Firestore obsługuje dzienne limity wydatków na projekty Google App Engine, aby nie przekroczyć kosztów, z którymi czujesz się komfortowo.

Przeczytaj więcej o planach cenowych Cloud Firestore .

Korzystanie z Cloud Firestore i Realtime Database

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 klienta działają w podobny sposób. Pamiętaj o różnicach przedstawionych 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.