Google właśnie wydało Cloud Firestore, nową bazę danych dokumentów dla aplikacji.
Czytam dokumentację, ale nie widzę wielu różnic między Firestore a Firebase DB.
Chodzi przede wszystkim o to, że Firestore korzysta z dokumentów i kolekcji, które umożliwiają łatwe korzystanie z zapytań w porównaniu do Firebase, która jest tradycyjną bazą danych noSQL z bazą JSON.
Chciałbym dowiedzieć się nieco więcej o ich różnicach, zastosowaniach lub o tym, czy Firestore właśnie zastąpił Firebase DB?
firebase
firebase-realtime-database
google-cloud-platform
google-cloud-firestore
Francisco Durdin Garcia
źródło
źródło
Odpowiedzi:
Napisałem więc cały post na blogu o tym właśnie pytaniu i polecam sprawdzić go (lub oficjalną dokumentację ), aby uzyskać bardziej kompletną odpowiedź.
Ale jeśli chcesz szybkiego (-ish) podsumowania, oto on:
Lepsze zapytania i bardziej uporządkowane dane - Podczas gdy baza danych w czasie rzeczywistym jest po prostu gigantycznym drzewem JSON, Cloud Firestore jest nieco bardziej uporządkowany. Wszystkie twoje dane składają się z dokumentów (które są w zasadzie magazynami o kluczowej wartości) i kolekcji (które są zbiorami dokumentów). Dokumenty często będą również wskazywać na podkolekcje, które zawierają inne dokumenty, które same mogą zawierać inne dokumenty i tak dalej.
Te uporządkowane dane pomagają na dwa sposoby. Po pierwsze, wszystkie zapytania są płytkie , co oznacza, że możesz poprosić o dokument bez pobierania wszystkich danych poniżej. Oznacza to, że możesz przechowywać dane w sposób hierarchiczny w sposób, który jest dla ciebie bardziej sensowny, bez konieczności martwienia się o utrzymywanie płytkiej bazy danych. Po drugie, masz mocniejsze zapytania. Na przykład możesz teraz wyszukiwać w wielu polach bez konieczności tworzenia pól „kombi”, które łączą (i denormalizują) dane z innych części bazy danych. W niektórych przypadkach Cloud Firestore po prostu uruchamia te zapytania bezpośrednio, aw innych przypadkach automatycznie tworzy i utrzymuje dla Ciebie indeksy.
Zaprojektowany do skalowania - Cloud Firestore będzie mógł skalować lepiej niż Baza danych w czasie rzeczywistym. Należy pamiętać, że zapytania są skalowane do rozmiaru zestawu wyników, a nie zestawu danych. Wyszukiwanie pozostanie szybkie, bez względu na to, jak duży może być Twój zestaw danych.
Łatwiejsze ręczne pobieranie danych - tak jak w czasie rzeczywistym, możesz skonfigurować nasłuchiwanie w Cloud Firestore, aby przesyłać strumieniowo zmiany w czasie rzeczywistym. Ale jeśli nie chcesz tego rodzaju zachowania, a po prostu chcesz prostego wywołania „pobierz moje dane”, Cloud Firestore ma to również i jest wbudowane jako podstawowy przypadek użycia. (Są znacznie lepsze niż
once
połączenia w Realtime Database-land)Obsługa wielu regionów - Zasadniczo oznacza to większą niezawodność, ponieważ dane są udostępniane w wielu centrach danych jednocześnie. Ale nadal masz silną spójność, co oznacza, że zawsze możesz wykonać zapytanie i mieć pewność, że otrzymujesz najnowszą wersję swoich danych.
Inny model wyceny - podczas gdy baza danych w czasie rzeczywistym pobiera opłaty głównie na podstawie pamięci lub przepustowości sieci, Cloud Firestore pobiera opłaty głównie na podstawie liczby wykonywanych operacji . Czy będzie lepiej, czy gorzej? To zależy od twojej aplikacji.
Jeśli chcesz zasilić aplikację z wiadomościami, turową grę wieloosobową lub coś w rodzaju własnej wersji Stack Overflow, Cloud Firestore prawdopodobnie będzie wyglądać całkiem korzystnie z punktu widzenia cen. W przypadku aplikacji do rysowania grupowego w czasie rzeczywistym, w której wysyłasz wiele aktualizacji na sekundę do wielu osób, prawdopodobnie będzie ona droższa niż baza danych w czasie rzeczywistym.
Dlaczego nadal możesz chcieć korzystać z bazy danych w czasie rzeczywistym - sprowadza się to do kilku powodów. 1) Całe to „prawdopodobnie będzie tańsze dla aplikacji, które wykonują wiele częstych aktualizacji”, o czym wspomniałem wcześniej, 2) Jest już od dłuższego czasu i zostało przetestowane w walce przez tysiące aplikacji, 3) Ma lepsze opóźnienie a gdy potrzebujesz czegoś z niezawodnie niskim opóźnieniem, aby czuć się w czasie rzeczywistym, Baza danych w czasie rzeczywistym może działać lepiej.
W przypadku większości nowych aplikacji zalecamy sprawdzenie Cloud Firestore. Ale jeśli masz aplikację, która jest już w bazie danych w czasie rzeczywistym, naprawdę nie polecam przełączania tylko ze względu na przełączanie, chyba że masz ku temu ważny powód.
Mam nadzieję, że to pomaga!
źródło
Możesz przeczytać cały artykuł tutaj: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0
Firebase Realtime database
który ma strukturę drzewa JSON, aleCloud Firestore
jest przechowywany w dokumentach (stanowiących parę par klucz-wartość) i formatach kolekcji (która jest zbiorem dokumentów).Więcej danych o strukturze
Baza danych w czasie rzeczywistym przechowywała dane w drzewie JSON, ale Cloud Firestore przechowywał dane w dokumentach, które są bardzo podobne do JSON.
W Cloud FireStore dokumenty mogą łączyć podkolekcje i zagnieżdżone obiekty (takie jak „telefon” na powyższym rysunku), z których oba mogą zawierać prymitywne pola, takie jak ciągi znaków (takie jak „nazwa”, „e-mail” itp. Na powyższym rysunku) lub złożone obiekty, takie jak listy.
Lepsze zapytania
Skalowalność
Cloud Firestore będzie mógł skalować się lepiej niż Baza danych w czasie rzeczywistym. Należy zauważyć, że wydajność zapytania jest proporcjonalna do wielkości zestawu wyników, a nie zestawu danych. Wyszukiwanie pozostanie szybkie, bez względu na to, jak duży może być Twój zestaw danych.
Ręczne pobieranie danych
Możemy słuchać danych w czasie rzeczywistym w Cloud FireStore, takich jak baza danych w czasie rzeczywistym, ale w Cloud FireStore, możemy również pobierać dane ręcznie (jeśli chcesz mieć dane tylko raz).
Bezpieczeństwo
W bazie danych w czasie rzeczywistym musimy osobno sprawdzać poprawność danych przy użyciu reguły sprawdzania poprawności, ale w Cloud FireStore sprawdzanie poprawności danych odbywa się automatycznie.
Zapisywanie danych
Możemy wykonać wiele operacji w jednej partii i wypełnić je atomowo, w dowolnej kombinacji
set()
,update()
lubdelete()
metod.cennik
W bazie danych w czasie rzeczywistym opłaty są naliczane tylko za przepustowość i przestrzeń dyskową, ale według wyższej stawki. Będąc w Cloud FireStore, opłaty są naliczane głównie za operacje wykonywane w bazie danych (odczyt, zapis, usuwanie), a przy niższym tempie - przepustowość i pojemność.
źródło
Powody, dla których warto wybrać Cloud Firestore zamiast Realtime Database
To ulepszona wersja
Baza danych Firebase wystarczyła do podstawowych aplikacji. Ale nie był wystarczająco silny, aby sprostać złożonym wymaganiom. Właśnie dlatego wprowadzono Cloud Firestore. Oto kilka głównych zmian.
cennik
W Cloud Firestore stawki spadły, chociaż obciążają głównie operacje wykonywane w bazie danych wraz z przepustowością i pamięcią. Możesz także ustawić dzienny limit wydatków. Oto pełne informacje na temat fakturowania.
Przyszłe plany Google
Kiedy odkryli wady w bazie danych w czasie rzeczywistym, stworzyli inny produkt zamiast ulepszać stary. Chociaż nie ma wiarygodnych danych ujawniających ich obecną pozycję w bazie danych w czasie rzeczywistym, nadszedł czas, aby pomyśleć, że prawdopodobnie zostanie porzucony.
źródło
Zaproponuj również link z Google: Firebase Real-Time Database vs. FireStore
Fragment z dokumentów Google, mała sumamia tutaj:
FireBase Real Time DB jest oparty na JSON bez bazy danych SQL, przeznaczony do aplikacji mobilnych, regionalnych i zwykle używany do przechowywania i synchronizacji danych między użytkownikami / urządzeniami w czasie rzeczywistym / bardzo niskim opóźnieniem.
FireStore to JSON „jak” NOSQL DB przeznaczony do utrzymywania wysokiej współbieżności, globalnej, łatwo skalowalnej trwałości, zaprojektowany dla wszystkich klientów (nie tylko aplikacji mobilnych) z typowymi przypadkami użycia, takimi jak śledzenie zasobów, analizy w czasie rzeczywistym, budowanie katalogów produktów detalicznych, użytkownik społecznościowy profil, tabele wyników gier, aplikacje czatowe itp.
źródło