Jakie są ilościowe zalety używania Firebase w porównaniu z MongoDB? (nie opinie)
Wiem, że Firebase to usługa oparta na chmurze z własnym interfejsem API, ale czuję, że Mongo może dać mi większą kontrolę na dłuższą metę.
Jakie są ilościowe zalety używania Firebase w porównaniu z MongoDB? (nie opinie)
Wiem, że Firebase to usługa oparta na chmurze z własnym interfejsem API, ale czuję, że Mongo może dać mi większą kontrolę na dłuższą metę.
Odpowiedzi:
EDYCJA: tutaj jest fajny artykuł, jak zamienić Firebase w swojej aplikacji na Node.js + MongoDb. Pokazuje, ile pracy musiałbyś wykonać samodzielnie, i wyjaśnia, IMHO, dlaczego startup (mała aplikacja) powinien zaczynać się od Firebase (jeśli wymagane są aktualizacje klientów w czasie rzeczywistym) i kontynuować z MongoDb (w każdym przypadku samodzielnie rozwiązanie pisemne), jeśli projekt będzie się rozwijał
EDYCJA 2: po przejęciu przez Google Firebase oferuje teraz różne korzyści oprócz podstawowych funkcji, które trudno byłoby zbudować samodzielnie:
Dla rozwoju
Na wzrost
Jabłka i pomarańcze. Firebase to usługa typu Backend-as-a-Service, która obejmuje zarządzanie tożsamością, widoki danych w czasie rzeczywistym i bazę danych dokumentów. Działa w chmurze.
Z drugiej strony MongoDB to pełnoprawna baza danych z bogatym językiem zapytań. Zasadniczo działa na własnym komputerze, ale są dostawcy chmury.
Jeśli szukasz składnika bazy danych, tylko MongoDB jest znacznie bardziej dojrzały i bogaty w funkcje.
Firebase jest przeznaczony do aktualizacji w czasie rzeczywistym. Łatwo integruje się z kątowym. Obie są bazami danych NoSQL. MongoDB może to również zrobić dzięki integracji Angular przez Socket.io. Meteor.js korzysta również z MongoDB z otwartym połączeniem przez gniazdo do aktualizacji w czasie rzeczywistym.
MongoDB może działać lokalnie lub być hostowane przez wielu różnych dostawców chmurowych. Moim zdaniem Firebase świetnie nadaje się do mniejszych aplikacji, bardzo szybko się uruchamia. MongoDB jest idealny dla bardziej rozbudowanych, większych aplikacji, integracja w czasie rzeczywistym jest możliwa, ale wymaga trochę więcej pracy.
Po użyciu Firebase sporej ilości zacząłem coś szukać.
Jeśli zamierzasz używać go do dużych aplikacji działających w czasie rzeczywistym, nie jest to najlepszy wybór. Ma swój szeroki wachlarz problemów, w tym zły system obsługi błędów i ograniczenia. Spędzisz dużo czasu, próbując zrozumieć Firebase i jego dziwactwa. Projekt może też łatwo stać się monolitem, który wymyka się spod kontroli. MongoDB to znacznie lepszy wybór, jeśli chodzi o zaplecze dla dużej aplikacji.
Jeśli jednak potrzebujesz stworzyć małą aplikację lub szybko coś prototypować, Firebase to świetny wybór. To będzie niesamowicie łatwy sposób na rozpoczęcie biegu.
Odpowiem na to pytanie w kontekście AngularFire, biblioteki Firebase dla Angular.
Tl; dr: supermoce. :-)
Trójkierunkowe wiązanie danych AngularFire. Angular wiąże widok i $ scope, tj. To, co Twoi użytkownicy robią w widoku, automagicznie aktualizuje zmienne lokalne, a kiedy JavaScript aktualizuje zmienną lokalną, widok aktualizuje się automatycznie. Dzięki Firebase baza danych w chmurze również aktualizuje się automatycznie. Nie musisz pisać żądań $ http.get lub $ http.put, dane są tylko aktualizowane.
Pięciokierunkowe wiązanie danych, siedmiokierunkowe, dziewięciokierunkowe itp. Zrobiłem grę w kółko i krzyżyk, używając AngularFire. Dwóch graczy może grać razem, przy czym dwa widoki aktualizują dwa $ scopes i bazę danych w chmurze. Możesz stworzyć grę z trzema lub więcej graczami, którzy współużytkują jedną bazę danych Firebase.
Biblioteka OAuth2 AngularFire ułatwia autoryzację za pomocą Facebooka, GitHub, Google, Twittera, tokenów i haseł.
Podwójne bezpieczeństwo. Możesz skonfigurować trasy Angular tak, aby wymagały autoryzacji, a także skonfigurować w Firebase reguły dotyczące tego, kto może odczytywać i zapisywać dane.
Nie ma zaplecza. Nie musisz tworzyć serwera z Node i Express. Prowadzenie własnego serwera może być pracochłonne, wymagać znajomości bezpieczeństwa, wymagać, aby ktoś coś zrobił, jeśli serwer się zepsuje itp.
Szybki. Jeśli twój serwer znajduje się w San Francisco, a klient w San Jose, w porządku. Jednak dla klienta w Bangalore połączenie z serwerem będzie wolniejsze. Firebase jest wdrażany na całym świecie w celu zapewnienia szybkich połączeń w każdym miejscu.
Z mojego doświadczenia wynika, że praca z Firebase jest ogromną zaletą, jeśli próbujesz zarządzać użytkownikami, bazą danych, aplikacjami do przesyłania wiadomości, ponieważ wszystkie te funkcje są już dobrze zintegrowane.
Jak powiedzieli inni, jeśli skupiasz się tylko na aspekcie bazy danych / zapytań, trzymaj się mongo.
Firebase to zestaw funkcji.
Wydaje mi się, że próbujesz porównać bazę danych czasu rzeczywistego Firebase z Mongo DB. Baza danych czasu rzeczywistego Firebase przechowuje dane w formacie JSON i synchronizuje wszystkie aktualizacje danych ze wszystkimi klientami nasłuchującymi danych. Odciąga Cię od całej złożoności potrzebnej do konfiguracji i skalowania dowolnej bazy danych. Nie polecam Firebase, gdzie masz wiele złożonych scenariuszy, w których wymagana jest agregacja danych (zapytania, które wymagają rodzaju SUMA / ŚREDNIA). Chociaż jest to ostatnio osiągalne przy użyciu funkcji Firebase. Modelowanie danych w Firebase jest trudne. Ale to najlepszy sposób na natychmiastowe rozpoczęcie pracy. MongoDB to baza danych. Daje to wiele zaawansowanych funkcji. Ale MongoDB po zainstalowaniu na dowolnej platformie musisz zarządzać nim samodzielnie.
Kiedy próbuję wybrać między Firebase lub MongoDB (lub dowolną bazą danych). Próbuję odpowiedzieć na następujące pytania.
Firebase zapewnia kilka dobrych funkcji, takich jak odzwierciedlanie zmian w czasie rzeczywistym, łatwa integracja mechanizmu uwierzytelniania i wiele innych wbudowanych funkcji do szybkiego tworzenia stron internetowych. Firebase naprawdę sprawia, że tworzenie stron internetowych jest tak proste, że nigdy nie istnieje. Baza danych Firebase to rozwidlenie MongoDB .
Jaka jest przewaga korzystania z Firebase nad MongoDB?
Możesz korzystać ze wszystkich wbudowanych funkcji Firebase zamiast MongoDB.