Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

Firebase oferuje dwa oparte na chmurze, dostępne dla klienta rozwiązania baz danych, które obsługują synchronizację danych w czasie rzeczywistym:

  • Chmura Firestore jest najnowsza baza Firebase dla rozwoju przenośnych aplikacji. Bazuje na sukcesach Bazy Danych Czasu Rzeczywistego z nowym, bardziej intuicyjnym modelem danych. Cloud Firestore oferuje również bogatsze i szybsze zapytania oraz skaluje dalej niż Baza danych czasu rzeczywistego.

  • Aktualizacje bazy danych jest oryginalna baza danych Firebase użytkownika. Jest to wydajne rozwiązanie o niewielkich opóźnieniach dla aplikacji mobilnych, które wymagają zsynchronizowania 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 zasugerować, która baza danych jest dla Ciebie odpowiednia.

Oba rozwiązania oferują:

  • Pakiety SDK zorientowane na 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

Oprócz świetnych podstawowych funkcji wspólnych dla obu baz danych, zastanów się, jak niektóre lub wszystkie z poniższych rozważań wpłyną na sukces Twoich aplikacji.

Rola bazy danych
Moja aplikacja używa bazy danych do...
Przede wszystkim synchronizacja danych z podstawowymi zapytaniami.
Jeśli nie potrzebujesz zaawansowanych zapytań, sortowanie i transakcji, zalecamy Realtime Database.
Zaawansowane zapytania, sortowanie i transakcje.
Jeśli potrzebujesz złożonych interakcji z danymi, na przykład w aplikacjach e-commerce, zalecamy Chmura FireStore.
Operacje na danych
Użycie bazy danych przez moją aplikację wygląda następująco...
Kilka GB lub mniej danych, które często się zmieniają.
Jeśli Twoja aplikacja będzie wysyłał strumień drobnych zmianach, tak jak w cyfrowej tablicy aplikacji, zalecamy Realtime Database.
Setki GB do TB danych, które są czytane znacznie częściej niż są zmieniane.
W przypadku bardzo dużych zbiorów danych, a gdy często są potrzebne operacje wsadowe, zalecamy Chmura FireStore.
Model danych
Wolę uporządkować moje dane jako...
Proste drzewo JSON.
Dla JSON niestrukturalnych danych, zalecamy Realtime Database.
Dokumenty zorganizowane w kolekcje.
Dla strukturyzowanych dokumentów i zbiorów, zalecamy Chmura FireStore.
Dostępność
Moje potrzeby dotyczące dostępności to...
Niezwykle wysoka gwarancja bezawaryjności 99,999%.
Jeśli dostępność jest sprawą najwyższej wagi, na przykład w aplikacjach e-commerce, zalecamy Chmura FireStore.
Gwarancja co najmniej 99,95% czasu sprawności.
Po bardzo wysokie, ale nie krytyczny dostępność jest dopuszczalne, zalecamy albo Chmura FireStore lub Aktualizacje bazy danych.
Zapytania offline dotyczące danych lokalnych
Moja aplikacja będzie musiała wykonywać zapytania na urządzeniach z ograniczoną łącznością lub bez połączenia...
Często.
Dla zaawansowanych możliwości wysyłania zapytań na danych lokalnych, gdy użytkownik jest zalogowany, zalecamy Chmura FireStore.
Rzadko lub nigdy.
Jeśli oczekujesz użytkownikom być stale online, zalecamy Chmura FireStore lub Aktualizacje bazy danych.
Liczba instancji bazy danych
W moich projektach indywidualnych potrzebuję...
Wiele baz danych, na przykład baza danych dla każdego głównego klienta.
Ponieważ pozwala na dodawanie wielu baz danych do pojedynczego projektu Firebase zalecamy Realtime Database.
Tylko jedna baza danych.
Jeśli potrzebujesz jedną bazę danych, zalecamy albo Chmura FireStore lub Aktualizacje bazy danych.

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

Po myślenia o kluczowych poprzednich rozważań, może być gotowy do wyboru bazy danych . Jeśli nadal zastanawiasz się nad zaletami i wadami, 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 uporządkowania na dużą skalę.

Dowiedz się więcej o modelu danych bazy danych w czasie rzeczywistym .

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 organizować na dużą skalę, korzystając z podzbiorów w dokumentach.
  • Wymaga mniejszej denormalizacji i spłaszczania danych.

Dowiedz się więcej o modelu danych Chmura FireStore .

Wsparcie w czasie rzeczywistym i offline

Oba mają mobilne pakiety SDK działające w czasie rzeczywistym 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 Apple Android. Wsparcie offline dla Apple, Androida i klientów internetowych.

Obecność

Warto wiedzieć, kiedy klient jest online lub offline. Baza danych czasu rzeczywistego Firebase może rejestrować stan połączenia klienta i dostarczać aktualizacje za każdym razem, gdy stan połączenia klienta się zmienia.

Baza danych czasu rzeczywistego Cloud Firestore
Obecność wspierana. Nieobsługiwane natywnie. Możesz wykorzystać obsługę obecności przez Bazę danych czasu rzeczywistego, synchronizując Cloud Firestore i Bazę danych czasu rzeczywistego za pomocą Cloud Functions. Zobacz obecność budować w chmurze FireStore .

Zapytania

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

Baza danych czasu rzeczywistego Cloud Firestore
Głębokie zapytań z ograniczoną sortowanie i filtrowanie funkcjonalność .
  • Zapytania można sortować lub filtr na nieruchomoś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 wartości poszczególnych węzłów liścia w drzewie JSON.
  • Zapytania nie wymagają indeksu; jednak wydajność niektórych zapytań spada wraz ze wzrostem zestawu danych.
Indeksowane zapytań ze związkiem sortowanie i filtrowanie .
  • Możesz łączyć filtry i łączyć filtrowanie i sortowanie według 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 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.

Zapisy i transakcje

Baza danych czasu rzeczywistego Cloud Firestore
Podstawowe operacje zapisu i transakcji.
  • Zapisu danych poprzez operacje ustawiania i aktualizację.
  • Transakcje są atomowy na poddrzewa specyficznych danych.
Zaawansowane operacje zapisu i transakcji.
  • Operacje zapisu danych poprzez operacje ustawiania i aktualizacji, a także zaawansowane transformacje, takie jak tablicy i operatorów numerycznych.
  • Transakcje mogą atomowo odczytu i zapisu danych z dowolnej części bazy danych.

Niezawodność i wydajność

Baza danych czasu rzeczywistego Cloud Firestore
Baza danych czasu rzeczywistego to rozwiązanie regionalne.
  • Dostępne w konfiguracjach regionalnych. Bazy danych są ograniczone do dostępności strefowej w regionie.
  • Niezwykle niskie opóźnienie, idealna opcja do częstej synchronizacji stanu.
Więcej o wydajności bazy danych w czasie rzeczywistym i charakterystyki niezawodności w Service Level Agreement .
Cloud Firestore to rozwiązanie regionalne i wieloregionalne, 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 wieloregionalnych na całym świecie.
Czytaj więcej o Chmura FireStore wydajności i niezawodności cech w Service Level Agreement .

Skalowalność

Baza danych czasu rzeczywistego Cloud Firestore
Skalowanie wymaga shardingu.
  • Skaluj do około 200 000 jednoczesnych połączeń i 1000 zapisów na sekundę w jednej bazie danych. Skalowanie poza to wymaga dzielenia danych w wielu bazach danych.
  • Brak lokalnych ograniczeń szybkości zapisu do poszczególnych części danych.
Skalowanie jest automatyczne.
  • Skaluje się 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 limitów na stopy napisać do poszczególnych dokumentów lub indeksów.

Bezpieczeństwo

Baza danych czasu rzeczywistego Cloud Firestore
Język reguł kaskadowych, który oddziela autoryzację i walidację. Reguły niekaskadowe, które łączą autoryzację i walidację.
  • Odczytuje i zapisuje z SDK telefonów zabezpieczonych chmurze FireStore zasad bezpieczeństwa .
  • Czyta i pisze z SDK serwerów zabezpieczonych zarządzania tożsamością i dostępem (IAM) .
  • Zasady 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 kończy się niepowodzeniem.

cennik

Oba rozwiązania są dostępne na zapłonową i planów cenowych Blaze .

Baza danych czasu rzeczywistego Cloud Firestore
Ładuje tylko dla pasma i pamięci, ale w szybszym tempie.

Czytaj więcej o Realtime planów cenowych Database .

Opłaty przede wszystkim na operacje wykonywane w bazie danych (odczyt, zapis, usuwanie), a na niższym poziomie, przepustowość i przechowywania.

Chmura Firestore obsługuje codzienne limity wydatków dla projektów App Engine, aby upewnić się, że nie wykraczają ponad koszty ty jesteś komfortowo.

Czytaj więcej o planach cenowych Chmura FireStore .

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 klienckie działają w podobny sposób. Należy mieć na uwadze różnice opisane powyżej, jeśli zdecydujesz się korzystać z obu baz danych w aplikacji .

Więcej informacji na temat funkcji dostępnych w obu Database Realtime i chmura FireStore .

Gotowy do wyboru bazy danych?

Mamy nadzieję, że to porównanie pomogło Ci zdecydować się na rozwiązanie bazy danych Firebase. Teraz dowiesz się, jak dodać bazę danych do swoich projektów Firebase.