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

Firebase oferuje 2 działające w chmurze bazy danych dokumentów dostępne dla klienta. Śr rekomendowanych klientom, którzy chcą zacząć korzystać z Cloud Firestore:

  • Cloud Firestore to zalecana usługa JSON zgodna z klasyfikacją korporacyjną bazy danych dokumentów, cieszącej się zaufaniem ponad 250 000 programistów. Jest odpowiedni dla w aplikacjach z rozbudowanymi modelami danych, które wymagają możliwości zapytań, skalowalności wysokiej dostępności. Zapewnia też krótki czas oczekiwania na synchronizację klienta i obsługę trybu offline dostępu do danych.

  • Baza danych czasu rzeczywistego to klasyczna baza danych JSON Firebase. Jest odpowiedni dla aplikacje z prostymi modelami danych, które wymagają prostych wyszukiwań i niewielkiego opóźnienia synchronizacji przy ograniczonej skalowalności.

Jakie są inne ważne kwestie, które należy wziąć pod uwagę?

Po zapoznaniu się z poprzednimi kluczowymi kwestiami można rozważyć wybierz bazę danych. Jeśli nadal rozważasz zalety i wady, w tej sekcji omawiamy inne czym różnią się Cloud Firestore od Bazy danych czasu rzeczywistego.

Model danych

Zarówno Baza danych czasu rzeczywistego, jak i Cloud Firestore, są bazami danych NoSQL.

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Przechowuje dane w postaci kolekcji dokumentów.
  • Proste dane można łatwo przechowywać w dokumentach, które są bardzo podobne do formatu JSON.
  • Złożone, hierarchiczne dane łatwiej porządkować na dużą skalę dzięki podkolekcjach w dokumentach.
  • Wymaga mniejszej denormalizacji i rozdzielania danych.

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

Przechowuje dane jako jedno duże drzewo JSON.
  • Proste dane można bardzo łatwo przechowywać.
  • Złożone, hierarchiczne dane trudniej jest uporządkować na dużą skalę.

Dowiedz się więcej o Model danych Bazy danych czasu rzeczywistego.

Obsługa w czasie rzeczywistym i offline

Oba mają pakiet SDK w czasie rzeczywistym dostosowany do urządzeń mobilnych i obsługują lokalne przechowywanie danych działające offline.

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Obsługa offline w klientach Apple, na Androida i w przeglądarkach internetowych. Obsługa offline w przypadku klientów Apple i Androida.

Obecność

Warto wiedzieć, czy klient jest online, czy offline. Firebase Baza danych czasu rzeczywistego może rejestrować stan połączenia z klientem i udostępniać aktualizacje za każdym razem, gdy zmieni się stan połączenia klienta.

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Nieobsługiwane natywnie. Możesz bazować na Bazie danych czasu rzeczywistego obsługi obecności przez synchronizację Cloud Firestore i Bazy danych czasu rzeczywistego za pomocą Funkcje w Cloud Functions Zobacz Kompilację o obecności w Cloud Firestore. Obsługa obecności.

Zapytanie

pobieranie, sortowanie i filtrowanie danych z dowolnej bazy danych za pomocą zapytań,

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Zindeksowane zapytania ze złożonymi sortowanie i filtrowanie.
  • W usłudze możesz łączyć filtry i sortowanie w usłudze za pomocą jednego zapytania.
  • Zapytania są płytkie: zwracają tylko dokumenty z danej kolekcji. ani grupy kolekcji, bez zwracania danych podkolekcji.
  • Zapytania muszą zawsze zwracać całe dokumenty.
  • Zapytania są domyślnie indeksowane: wydajność zapytań jest proporcjonalna do do rozmiaru zbioru wyników, a nie zbioru danych.
Precyzyjne zapytania z ograniczonymi funkcji sortowania i filtrowania.
  • Zapytania mogą sortować lub filtrować według usługi, ale nie na oba te sposoby naraz.
  • Zapytania są domyślnie głębokie: zawsze zwracają całe poddrzewo.
  • Zapytania mogą uzyskać dostęp do danych na dowolnym poziomie szczegółowości, aż do wartości poszczególnych węzłów liścia w drzewie JSON.
  • zapytania nie wymagają indeksu; jednak wydajność określonych zapytań pogarsza się w miarę rozrastania się zbioru danych.

Zapisy i transakcje

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Zaawansowane operacje zapisu i transakcji.
  • Zapisywanie operacji na danych za pomocą operacji ustawiania i aktualizacji, jak również zaawansowanych przekształceń, takich jak z operatorami tablicowymi i liczbowymi.
  • Transakcje może atomowo odczytywać i zapisywać dane z dowolnej części bazy danych.
Podstawowe operacje zapisu i transakcji.

Niezawodność i wydajność

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Cloud Firestore to rozwiązanie regionalne i obejmujące wiele regionów, które można skalować automatycznie.
  • rozwiązanie z krótkim czasem oczekiwania na odpowiedź, które zwykle nie przekracza 30 razy; ms
  • Przechowuje dane w wielu centrach danych w różnych regionach, co zapewnia globalną skalowalność i silną niezawodność.
  • Funkcja dostępna w konfiguracjach regionalnych lub obejmujących wiele regionów na całym świecie.
. Więcej informacji o charakterystykach wydajności i niezawodności Cloud Firestore w gwarancji jakości usług.
Baza danych czasu rzeczywistego jest rozwiązaniem regionalnym.
  • Dostępne w konfiguracjach regionalnych. Bazy danych są ograniczone do strefowych dostępności w danym regionie.
  • Niezwykle małe opóźnienie, przy czym typowy czas reakcji nie przekracza 10 ms. An jest idealnym rozwiązaniem do częstej synchronizacji stanów.
. Więcej informacji o charakterystykach wydajności i niezawodności Bazy danych czasu rzeczywistego w gwarancji jakości usług.

Czas działania

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Niezwykle wysoka wydajność działania.
  • Typowa wydajność działania na poziomie 99,999%.
  • Jeśli np. w przypadku aplikacji e-commerce najważniejsza jest dostępność, korzystać z Cloud Firestore.
Wysoka wydajność.
  • Typowa wydajność działania na poziomie 99,95%.

Skalowalność

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Skalowanie odbywa się automatycznie.
  • Skaluje się całkowicie automatycznie. Limity skalowania są około 1 milion równoczesnych połączeń i 10 000 zapisów na sekundę. Planujemy zwiększyć te limity w przyszłości.
  • Ma ograniczenia szybkości zapisu w poszczególnych dokumentach lub indeksach.
Skalowanie wymaga fragmentacji.
  • Skaluj do około 200 tys. równoczesnych połączeń i 1000 zapisów na sekundę w w jednej bazie danych. Skalowanie powyżej wymaga fragmentacji danych wiele baz danych.
  • Nie ma lokalnych limitów szybkości zapisu poszczególnych fragmentów danych.

Bezpieczeństwo

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Reguły niekaskadowe, które łączą autoryzację i weryfikację.
  • Odczyty i zapisy z mobilnych pakietów SDK zabezpieczone przez Reguły zabezpieczeń Cloud Firestore
  • Odczyty i zapisy z pakietów SDK serwera chronionych przez Identity and Access Management (uprawnienia).
  • Reguły nie są kaskadowe, chyba że użyjesz symbolu wieloznacznego.
  • Reguły mogą ograniczać zapytania: jeśli wyniki zapytania mogą zawierać dane użytkownik nie będzie miał dostępu, całe zapytanie zakończy się niepowodzeniem.
Język reguł kaskadowych, który oddziela autoryzację i weryfikację.

Ceny

Oba rozwiązania są dostępne na Abonamenty Spark i Blaze

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Opłaty głównie za operacje wykonywane w bazie danych (odczyt, zapis, usuwanie) oraz przy niższej szybkości i wykorzystywaniu przepustowości i pamięci.

Cloud Firestore obsługuje codziennie limity wydatków dla projektów App Engine, dzięki czemu nie przekroczysz co nam odpowiada.

Więcej informacji o Abonamenty Cloud Firestore

Opłaty są naliczane tylko za przepustowość i ilość miejsca na dane, ale przy większej stawki.

Dowiedz się więcej o abonamentach Bazy danych czasu rzeczywistego.

Korzystanie z Cloud Firestore i Bazy danych czasu rzeczywistego

Możesz używać obu baz danych w tej samej aplikacji lub projekcie Firebase. Oba modele mogą przechowywać te same typy danych, a biblioteki klienta działają w w podobny sposób. Weź pod uwagę różnice opisane wcześniej, aby używać obu baz danych w aplikacji.

Dowiedz się więcej o funkcjach dostępnych w Bazie danych czasu rzeczywistego i Cloud Firestore.

Chcesz wybrać bazę danych?

Mamy nadzieję, że to porównanie ułatwiło Ci wybór rozwiązania opartego na bazie danych Firebase. Teraz możesz dowiedzieć się, jak dodać bazę danych do projektów Firebase.