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 poleć nowych klientów na początek Cloud Firestore:

  • Cloud Firestore jest zalecanym formatem zgodnym z kodem JSON klasy korporacyjnej 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.

  • Realtime Database 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 znajdziesz inne różnice między Cloud FirestoreRealtime Database.

Model danych

Zarówno Realtime Database, jak i Cloud Firestore to bazy danych NoSQL.

Cloud Firestore Preferowany Realtime Database
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 w jednym dużym drzewie 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 Realtime Database.

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.

Cloud Firestore Preferowany Realtime Database
Obsługa offline w klientach Apple, na Androida i w przeglądarkach internetowych. Obsługa offline w przypadku klientów Apple i Androida.

Obecność

Może być przydatne, aby wiedzieć, kiedy klient jest online, a kiedy offline. Firebase Realtime Database może rejestrować stan połączenia klienta i przesyłać aktualizacje za każdym razem, gdy zmienia się stan połączenia klienta.

Cloud Firestore Preferowana Realtime Database
Nieobsługiwane natywnie. Możesz opierać się na tych identyfikatorach: Realtime Database obsługi obecności dzięki synchronizacji Cloud Firestore i Realtime Database za pomocą Cloud Functions Zobacz Kompilację obecny w Cloud Firestore. Obsługa obecności

Zapytanie

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

Cloud Firestore Preferowana Realtime Database
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ą uzyskiwać dostęp do danych o dowolnej szczegółowości, aż do poszczególnych wartości węzłów liści w drzewie JSON.
  • zapytania nie wymagają indeksu; jednak wydajność określonych zapytań pogarsza się w miarę rozrastania się zbioru danych.

Zapisy i transakcje

Cloud Firestore Preferowana Realtime Database
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ść

Cloud Firestore Preferowana Realtime Database
Cloud Firestore to rozwiązanie regionalne i wieloregionalne, które skaluje się 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 charakterze wydajności i niezawodności usługi Cloud Firestore w Gwarancji jakości usług.
Realtime Database to rozwiązanie regionalne.
  • 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 charakterze wydajności i niezawodności usługi Realtime Database w Gwarancji jakości usług.

Czas działania

Cloud Firestore Preferowana Realtime Database
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ść, użyj funkcji Cloud Firestore.
Wysoka wydajność.
  • Typowa wydajność działania na poziomie 99,95%.

Skalowalność

Cloud Firestore Preferowana Realtime Database
Skalowanie odbywa się automatycznie.
  • Skaluje się całkowicie automatycznie. Limity skalowania to około 1 mln jednoczesnych połączeń i 10 tys. zapisów/sekundę. W przyszłości planujemy zwiększyć te limity.
  • 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

Cloud Firestore Preferowana Realtime Database
Reguły niekaskadowe, które łączą autoryzację i weryfikację.
  • Odczyty i zapisy z mobilnych pakietów SDK zabezpieczone przez Cloud Firestore Security Rules
  • 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

Cloud Firestore Preferowana Realtime Database
Opłaty są naliczane głównie za operacje wykonywane w bazie danych (odczyt, zapis, usunięcie) oraz, w niższej stawce, za przepustowość i miejsce na dane.

Cloud Firestore wspiera codziennie limity wydatków dla App Engine projektów, aby nie przekroczyć naliczanych kosztów co nam odpowiada.

Dowiedz się więcej o abonamentach 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 Realtime Database.

Używasz Cloud Firestore i Realtime Database

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 obu tych usługach: Realtime Database 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.