@David To nie jest opinia. OP nie pyta, co jest lepsze (na podstawie opinii), ale pyta o korzyści (jeśli w ogóle) FB w porównaniu z MongoDb. Aby mieć opinię, musimy wyciągnąć tutaj zalety i wady obu i ocenić, która technologia może być preferowana
@KirillSlatin To pytanie zostało już zamknięte. Możesz przeczytać, dlaczego takie pytania nie są doceniane w poście na blogu Gorilla vs Shark . Chociaż nie konstruktywny powód, o którym mowa na tym blogu, nie jest już dostępny, nadal jest bardzo szeroki (wyliczanie wszystkich różnic w odpowiedzi jest żmudne), bardzo czasowy (można dodać funkcje, które to zmieniają) i ogólnie nie jest dobry nadające się do tej witryny.
Erik A,
Odpowiedzi:
123
Firebase to mechanizm działający w czasie rzeczywistym z łącznością wsteczną. To znaczy, możesz zbudować aplikację wieloplatformową, w której klienci subskrybują zdarzenia dotyczące określonych danych, a serwer aktywnie informuje klientów o zmianach
Warstwa danych jest hostowana dla Ciebie. Pamiętaj, że jest wysoce skalowalny. To fajne rozwiązanie na kickstarter. W tym zarządzanie autoryzacją
Geo-Fire. Rozwiązanie współrzędnych geograficznych w czasie rzeczywistym.
Oczywiste wady Firebase to:
Musisz za to zapłacić, gdy tylko zaczniesz się rozwijać
Nie możesz hostować warstwy danych (jeśli posiadanie danych jest krytyczne lub tworzysz aplikację dla jakiejś oddzielnej podsieci)
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
Komunikacja w chmurze : niezawodnie dostarczaj i odbieraj wiadomości na różnych platformach
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.
co to jest Fireloop?, czy to jest sposób na napisanie reszt API w bazie Firebase?
ashishSober
Właściwie myślę, że angularfire jest niesamowity, czy jest jakiś sposób, w jaki możesz go wziąć i przekazać do użytku z własnym systemem bazy danych?, w tym przypadku z Mongo, więc byłoby niesamowite, możesz skorzystać z trzech powiązań danych i aby móc natychmiastowo aktualizować swoje wartości
Kross
Podoba mi się twoja ostatnia część komentarza: „Firebase jest wdrożony na całym świecie w celu zapewnienia szybkich połączeń na całym świecie”.
Lester
13
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.
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.
Czy jest wiele zapytań agregujących, które są wykonywane (jak w przypadku narzędzia raportowania lub narzędzia BI). Jeśli tak, nie używaj Firebase
Czy muszę przeprowadzać dużo transakcji. (Jeśli tak, to nie chciałbym korzystać z firebase) (Transakcje są dość łatwe po wprowadzeniu funkcji, ale jest to również narzut, jeśli trzeba utrzymać wiele transakcji)
Jaka jest moja oś czasu, aby wszystko było gotowe do pracy. (Firebase jest bardzo łatwy w konfiguracji i integracji).
Czy mam doświadczenie w skalowaniu DB i rozwiązywaniu problemów związanych z DB. (Firebase bardziej przypomina SAAS, więc nie musisz się martwić o skalowalność)
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.
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
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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 .
Możesz korzystać ze wszystkich wbudowanych funkcji Firebase zamiast MongoDB.
źródło