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

Firebase oferuje 2 działające w chmurze bazy danych dokumentów dostępne dla klienta. Nowi klienci powinni zacząć od Cloud Firestore:

  • Cloud Firestore to zalecana baza danych dokumentów JSON zgodna z klasą korporacyjną, zaufana przez ponad 250 tys. programistów. Jest odpowiedni w aplikacjach z rozbudowanymi modelami danych, które wymagają zapytań, skalowalności i wysokiej dostępności. Zapewnia też krótki czas oczekiwania na synchronizację klienta i dostęp do danych w trybie offline.

  • Baza danych czasu rzeczywistego to klasyczna baza danych JSON Firebase. Nadaje się do aplikacji z prostymi modelami danych, które wymagają prostych wyszukiwań i synchronizacji z małymi opóźnieniami przy ograniczonej skalowalności.

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

Zastanawiając się nad poprzednimi kluczowymi kwestiami, możesz przejść do wyboru bazy danych. Jeśli nadal rozważasz zalety i wady, ta sekcja przedstawia 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.

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 podkolekcji w dokumentach.
  • Wymaga mniejszej denormalizacji i rozdzielania danych.

Więcej informacji o modelu 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 modelu 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 na potrzeby aplikacji działających w trybie 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. Baza danych czasu rzeczywistego Firebase może rejestrować stan połączenia z klientem i udostępniać aktualizacje po każdej zmianie stanu połączenia klienta.

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Nieobsługiwane natywnie. Możesz skorzystać z obsługi obecności w Bazie danych czasu rzeczywistego, synchronizując Cloud Firestore i Bazę danych czasu rzeczywistego za pomocą Cloud Functions. Zapoznaj się z informacjami o tworzeniu 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żonym sortowaniem i filtrowaniem.
  • W jednym zapytaniu możesz łączyć filtry oraz łączyć filtrowanie i sortowanie według danej usługi.
  • Zapytania są płytkie: zwracają tylko dokumenty z konkretnej kolekcji lub grupy kolekcji i nie zwracają danych podkolekcji.
  • Zapytania muszą zawsze zwracać całe dokumenty.
  • Zapytania są domyślnie indeksowane: wydajność zapytań jest proporcjonalna do rozmiaru zbioru wyników, a nie zbioru danych.
Precyzyjne zapytania z ograniczonymi funkcjami 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, ale ich wydajność spada 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, a także zaawansowanych przekształceń, takich jak operatory tablicowe i liczbowe.
  • Transakcje mogą oddzielnie odczytywać i zapisywać dane z dowolnej części bazy danych.
Podstawowe operacje zapisu i transakcji.
  • Zapisz dane za pomocą operacji ustawiania i aktualizowania.
  • Transakcje są charakterystyczne dla określonego poddrzewa danych.

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 skaluje się automatycznie.
  • Jest to rozwiązanie z krótkim czasem oczekiwania na odpowiedź, które zwykle nie przekracza 30 ms.
  • Przechowuje dane w wielu centrach danych w różnych regionach, co zapewnia globalną skalowalność i wysoką 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 znajdziesz w gwarancji jakości usług.
Baza danych czasu rzeczywistego jest rozwiązaniem regionalnym.
  • Dostępne w konfiguracjach regionalnych. Dostępność baz danych jest ograniczona do dostępności w regionie.
  • Niezwykle małe opóźnienie, typowy czas odpowiedzi nie przekracza 10 ms. Idealna opcja przy częstej synchronizacji stanów.
Więcej informacji o parametrach wydajności i niezawodności Bazy danych czasu rzeczywistego znajdziesz 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 dostępność jest jednak kluczowa, np. w aplikacjach e-commerce, skorzystaj 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 wynoszą około 1 miliona 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 jednej bazie danych. Większe skalowanie wymaga fragmentacji danych w wielu bazach 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 zabezpieczonych przez reguły zabezpieczeń Cloud Firestore.
  • Odczyty i zapisy z pakietów SDK serwera zabezpieczonych przez Identity and Access Management (IAM).
  • Reguły nie są kaskadowe, chyba że użyjesz 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 zakończy się niepowodzeniem.
Język reguł kaskadowych, który oddziela autoryzację i weryfikację.

Ceny

Oba rozwiązania są dostępne w abonamentach Spark i Blaze.

Preferowana usługa Cloud Firestore Baza danych czasu rzeczywistego
Opłaty są naliczane głównie za operacje wykonywane w bazie danych (odczyt, zapis, usuwanie) oraz przy mniejszej stawce za przepustowość i ilość miejsca na dane.

Cloud Firestore obsługuje dzienne limity wydatków na projekty App Engine, aby mieć pewność, że nie przekroczysz środków, które Ci odpowiadają.

Dowiedz się więcej o abonamentach Cloud Firestore.

Opłaty są naliczane tylko za przepustowość i miejsce na dane, ale za wyższą stawkę.

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. Obie bazy danych NoSQL mogą przechowywać te same typy danych, a biblioteki klienta działają w podobny sposób. Jeśli zdecydujesz się używać obu baz danych w aplikacji, pamiętaj o różnicach opisanych wcześniej.

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.