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

Firebase oferuje 2 bazy danych dokumentów dostępne dla klientów w chmurze. nowym klientom zalecamy wykonanie tych czynności:Cloud Firestore

  • Cloud Firestore to zalecana korporacyjna baza danych dokumentów zgodna z formatem JSON, której zaufało ponad 250 tys. programistów. Nadaje się do aplikacji z bogatymi modelami danych, które wymagają możliwości wykonywania zapytań, skalowalności i wysokiej dostępności. Umożliwia też synchronizację klienta z niskim opóźnieniem i dostęp do danych offline.

  • Realtime Database to klasyczna baza danych JSON w Firebase. Nadaje się do aplikacji z prostymi modelami danych, które wymagają prostych wyszukiwań i synchronizacji o małej latencji z ograniczoną skalowalnością.

Co jeszcze warto wziąć pod uwagę?

Po zastanowieniu się nad kluczowymi kwestiami wymienionymi powyżej możesz wybrać 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
Zapisywanie danych w kolekcjach dokumentów.
  • Proste dane można łatwo przechowywać w dokumentach, które są bardzo podobne do formatu JSON.
  • Złożone dane hierarchiczne łatwiej jest porządkować na dużą skalę, korzystając z podkolekcji w dokumentach.
  • Wymaga mniejszej denormalizacji i spłaszczenia danych.

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

Przechowuje dane w jednym dużym drzewie JSON.
  • Proste dane są bardzo łatwe do przechowywania.
  • Skomplikowane dane hierarchiczne trudniej jest uporządkować na dużą skalę.

Dowiedz się więcej o Realtime Database modelu danych.

Obsługa w czasie rzeczywistym i offline

Oba pakiety SDK są zoptymalizowane pod kątem urządzeń mobilnych i obsługują lokalne przechowywanie danych w przypadku aplikacji działających w trybie offline.

Cloud Firestore [ PREFEROWANY ] Realtime Database
Obsługa offline na urządzeniach z systemem Apple, Android i klientach internetowych. Obsługa offline dla klientów korzystających z systemó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 z klientem i przesyłać aktualizacje za każdym razem, gdy stan połączenia klienta ulegnie zmianie.

Cloud Firestore [ PREFEROWANY ] Realtime Database
Nieobsługiwane natywnie. Możesz korzystać z obsługi obecności w Realtime Database, synchronizując Cloud Firestore i Realtime Database za pomocą Cloud Functions. Zapoznaj się z artykułem Tworzenie obecności w Cloud Firestore. Obsługa obecności

Tworzenie zapytań

Pobieraj, sortuj i filtruj dane z dowolnej bazy danych za pomocą zapytań.

Cloud Firestore [ PREFEROWANY ] Realtime Database
Zapytania indeksowane z użyciem złożonego sortowania i filtrowania.
  • W jednym zapytaniu możesz połączyć łańcuchowo filtry oraz połączyć filtrowanie i sortowanie w usłudze.
  • Zapytania są płytkie: zwracają tylko dokumenty z konkretnej kolekcji lub grupy kolekcji i nie zawierają danych z podrzędnych kolekcji.
  • 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.
Zaawansowane zapytania z ograniczonymi funkcjami sortowania i filtrowania.
  • Zapytania mogą sortować lub filtrować według usługi, ale nie robić obu tych czynności jednocześnie.
  • Zapytania są domyślnie głębokie: zawsze zwracają cały poddrzew.
  • Zapytania mogą uzyskiwać dostęp do danych o dowolnej szczegółowości, aż do poziomu poszczególnych wartości węzłów liści w drzewie JSON.
  • Zapytania nie wymagają indeksu, ale wydajność niektórych zapytań spada wraz z powiększaniem się zbioru danych.

Zapisy i transakcje

Cloud Firestore [ PREFEROWANY ] Realtime Database
Zaawansowane operacje zapisu i transakcji.
  • Operacje zapisu danych za pomocą operacji zbioru i aktualizacji oraz zaawansowanych przekształceń, takich jak operatory tablic i liczb.
  • Transakcje mogą odczytywać i zapisywać dane w dowolnej części bazy danych.
Podstawowe operacje zapisu i transakcji.
  • Zapisywać dane za pomocą operacji ustawiania i aktualizowania.
  • Transakcje są atomowe w przypadku konkretnego poddrzewa danych.

Niezawodność i wydajność

Cloud Firestore [ PREFEROWANY ] Realtime Database
Cloud Firestore to rozwiązanie regionalne i wieloregionalne, które skaluje się automatycznie.
  • rozwiązanie o niskiej latencji, którego typowy czas odpowiedzi nie przekracza 30 ms;
  • przechowuje Twoje dane w wielu centrach danych w różnych regionach, zapewniając globalną skalowalność i wysoką niezawodność;
  • Dostępne w konfiguracjach regionalnych i wieloregionalnych na całym świecie.
Więcej informacji o charakterystyce wydajności i niezawodności Cloud Firestore znajdziesz w Gwarancji jakości usług.
Realtime Database to regionalne rozwiązanie.
  • Dostępne w konfiguracjach regionalnych. Bazy danych są ograniczone do strefy dostępnej w danym regionie.
  • Bardzo niskie opóźnienie, typowy czas odpowiedzi nie dłuższy niż 10 ms. Idealna opcja do częstej synchronizacji stanu.
Więcej informacji o charakterystyce wydajności i niezawodności Realtime Database znajdziesz w Gwarancji jakości usług.

Czas działania

Cloud Firestore [ PREFEROWANY ] Realtime Database
Wysoka dostępność.
  • Typowa dostępność to 99,999%.
  • Jeśli dostępność ma najwyższe znaczenie, na przykład w przypadku aplikacji e-commerce, użyj Cloud Firestore.
Wysoka dostępność
  • Typowa dostępność na poziomie 99,95%.

Skalowalność

Cloud Firestore [ PREFEROWANY ] Realtime Database
Skalowanie jest automatyczne.
  • Skalowanie odbywa 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 dotyczące szybkości zapisu w poszczególnych dokumentach lub indeksach;
Skalowanie wymaga podziału na segmenty.
  • Osiągnięcie skali około 200 tysięcy jednoczesnych połączeń i 1000 zapisów na sekundę w jednej bazie danych. Aby zwiększyć skalę, trzeba podzielić dane na kilka baz danych.
  • Brak lokalnych ograniczeń szybkości zapisu dla poszczególnych danych.

Bezpieczeństwo

Cloud Firestore [ PREFEROWANY ] Realtime Database
Reguły niekaskadowe, które łączą autoryzację i weryfikację.
  • Czyta i zapisuje dane z pakietów SDK do reklam mobilnych zabezpieczonych za pomocą Cloud Firestore Security Rules.
  • Czyta i zapisuje dane z pakietów SDK serwera zabezpieczonych za pomocą Identity and Access Management (IAM).
  • Reguły nie działają kaskadowo, 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 kończy się niepowodzeniem.
Język reguł kaskadowych, który oddziela autoryzację od walidacji.
  • Czyta i zapisuje dane z pakietów SDK do reklam mobilnych zabezpieczonych przez Realtime Database Security Rules.
  • Reguły odczytu i zapisu w kaskadowym trybie odczytu i zapisu.
  • Weryfikuj dane osobno za pomocą reguły validate.

Ceny

Oba rozwiązania są dostępne w ramach abonamentów Spark i Blaze.

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

Cloud Firestore obsługuje dzienne limity wydatków w przypadku projektów App Engine, aby nie przekroczyć ustalonych przez Ciebie kosztów.

Dowiedz się więcej o abonamentach Cloud Firestore.

Opłaty tylko za przepustowość i miejsce na dane, ale po wyższej stawce.

Dowiedz się więcej o abonamentach Realtime Database.

Używasz Cloud FirestoreRealtime Database

Możesz używać obu baz danych w ramach tej samej aplikacji lub tego samego projektu 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żyć w aplikacji obu baz danych, pamiętaj o poprzednio opisanych różnicach.

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 wybrać rozwiązanie bazy danych Firebase. Dowiedz się, jak dodać bazę danych do projektów Firebase.