MongoDB проти Firebase [закрито]


149

Які є кількісні переваги використання Firebase над MongoDB? (не думки)

Я знаю, що Firebase - це хмарний сервіс із власним API, але я відчуваю, що Монго може дати мені більший контроль у довгостроковій перспективі.


53
@David Це не на основі думки. ОП не запитує, що краще (що могло б базуватися на думці), але просить вигоди (якщо такі є) ФБ над MongoDb. Для думки нам потрібно витягнути звідси переваги обох та недоліків обох та визначити, яка технологія може бути кращою
Кирило Слатін

Я рекомендую @itsclarke прочитати це: crisp.chat/blog/…
Junior Mayhé

2
@KirillSlatin Це питання закрито. Ви можете прочитати, чому подібні питання не оцінені в публікації блогу Gorilla vs Shark . Хоча неконструктивна причина, про яку йдеться в цьому блозі, більше не доступна, вона все ще дуже широка (перерахування всіх відмінностей у відповіді стомлює), дуже часова (можуть бути додані функції, що змінюють це), і, як правило, не дуже добре підходить для цього сайту.
Ерік

Відповіді:


123
  • Firebase - це двигун у режимі реального часу із зворотним підключенням. Тобто ви можете створити багатоплатформенний додаток, де клієнти підписуються на події на конкретних даних, а сервер активно інформує клієнтів про зміни
  • Шар даних розміщується для вас. Майте на увазі, що це дуже масштабовано. Це приємне рішення для кістерстартерів. У тому числі управління автентичністю
  • Гео-вогонь. Рішення геокоординатів у режимі реального часу.
  • Очевидними недоліками Firebase є:
    • Ви повинні заплатити за це, як тільки ви почнете рости
    • Ви не можете розміщувати рівень даних (якщо володіти даними критично важливо або ви розробляєте додаток для окремої підмережі)

EDIT: ось приємна стаття, як замінити Firebase у вашому додатку на Node.js + MongoDb. Він показує, скільки роботи вам доведеться виконати самостійно, і пояснює, IMHO, чому запуск (невеликий додаток) повинен починатися з Firebase (якщо потрібні оновлення клієнтів у режимі реального часу) та продовжувати роботу з MongoDb (у будь-якому випадку самостійно - письмове рішення), якщо проект постійно розвивається

EDIT 2: після придбання Google Firebase тепер пропонує різні переваги на додаток до основних її функцій, які ви б намагалися створити самостійно:


39

Яблука та апельсини. Firebase - це сервіс Backend as-a-Service, який містить управління ідентифікацією, переглядами даних у режимі реального часу та базою даних документів. Він працює в хмарі.

MongoDB, з іншого боку, - це повноцінна база даних з багатою мовою запитів. В принципі він працює на вашій власній машині, але є хмарні провайдери.

Якщо ви шукаєте лише компонент бази даних, MongoDB набагато зріліший і багатий на функції.


31

Firebase призначена для оновлення в режимі реального часу. Він легко інтегрується з кутовим. Обидва є базами даних NoSQL. MongoDB також може це зробити за допомогою Angular через інтеграцію Socket.io. Meteor.js також використовує MongoDB з відкритим з'єднанням для роз'ємів для оновлень у реальному часі.

MongoDB може працювати локально або розміщуватися на багатьох різних хмарних постачальниках послуг. Firebase, на мою думку, чудово підходить для менших додатків, дуже швидко вставати та працювати. MongoDB ідеально підходить для більш надійних великих додатків, можлива інтеграція в реальному часі, але це потребує трохи більше роботи.


23

Після використання Firebase значну кількість я прийшов знайти щось.

Якщо ви маєте намір використовувати його для великих додатків у режимі реального часу, це не найкращий вибір. У нього є широкий спектр проблем, включаючи погану систему поводження з помилками та обмеження. Ви витратите значний час на те, щоб зрозуміти Firebase, і це неприємно. Також досить просто проект стане монолітною справою, яка виходить з-під контролю. MongoDB - це набагато кращий вибір, що стосується резервного пакету для великого додатка.

Однак, якщо вам потрібно зробити невеликий додаток або швидко щось прототипувати, Firebase - чудовий вибір. Це буде неймовірно простий спосіб бігти по землі.


22

Я відповім на це запитання з точки зору AngularFire, бібліотеки Firebase для Angular.

  1. Tl; dr: наддержави. :-)

  2. Тристороння прив'язка даних AngularFire. Кутовий зв'язує подання та область $, тобто те, що ваші користувачі роблять у представленні, автоматично оновлюється в локальних змінних, а коли ваш JavaScript оновлює локальну змінну, перегляд автоматично оновлюється. З Firebase хмарна база даних також автоматично оновлюється. Вам не потрібно писати запити $ http.get або $ http.put, дані просто оновлюються.

  3. П'ятистороння прив'язка даних та семистороння, дев’ятистороння і т. Д. Я зробив гру «тик-так-носок», використовуючи AngularFire. Два гравці можуть грати разом, при цьому два огляди оновлюють два діапазони $ та хмарну базу даних. Ви можете створити гру з трьома або більше гравцями, усі мають одну базу даних Firebase.

  4. Бібліотека OAuth2 AngularFire спрощує авторизацію за допомогою Facebook, GitHub, Google, Twitter, жетонів та паролів.

  5. Подвійна безпека. Ви можете налаштувати свої кутові маршрути, щоб вимагати авторизації, та встановити правила в Firebase про те, хто може читати та записувати дані.

  6. Заднього кінця немає. Вам не потрібно робити сервер з Node та Express. Запуск власного сервера може бути багато роботи, вимагати знань про безпеку, вимагати, щоб хтось щось робив, якщо сервер виходить з ладу тощо.

  7. Швидкий. Якщо ваш сервер знаходиться у Сан-Франциско, а клієнт - у Сан-Хосе, добре. Але для клієнта в Бангалорі підключення до вашого сервера буде повільніше. Firebase розгорнута по всьому світу для швидкого з'єднання скрізь.


що таке Fireloop? це спосіб написання спокою api за допомогою Firebase?
ashishSober

насправді я думаю, що кутовий вогонь є дивовижним, чи є у вас спосіб взяти його та передати його на використання із власною системою баз даних ?, у цьому випадку з Монго, тож було б дивовижно, щоб ви могли скористатися трьома прив'язками даних і також мати можливість миттєво оновити свої цінності
Kross

Мені подобається ваша остання коментар: "Firebase розгорнута по всьому світу для швидкого з'єднання скрізь".
Лестер

13

На мій досвід, робота з Firebase є величезною перевагою, якщо ви намагаєтеся керувати користувачами, базою даних, додатком для обміну повідомленнями, оскільки всі ці функції вже добре інтегровані.

Як казали інші, якщо ви просто зосереджені на аспекті бази даних / запитів, дотримуйтесь монго.


13

Firebase - це набір функцій.

  • База даних в реальному часі
  • Хостинг
  • Аутентифікація
  • Зберігання
  • Хмарні повідомлення
  • Віддалене налаштування
  • Тестова лабораторія
  • Звіт про збої
  • Сповіщення
  • Індексація додатків
  • Динамічні посилання
  • Запрошує
  • AdWords
  • AdMob

Я вважаю, що ви намагаєтеся порівняти базу даних Firebase Realtime з мондо-БД. База даних Firebase Realtime зберігає дані у форматі JSON та синхронізує всі оновлення даних усім клієнтам, які їх слухають. Він резюмує вас від усієї складності, необхідної для налаштування та масштабування будь-якої бази даних. Я не рекомендую Firebase, коли у вас є багато складних сценаріїв, де потрібна агрегація даних (запити, для яких потрібні матеріали SUM / AVERAGE). Хоча цього останнім часом можна досягти за допомогою функцій Firebase. Моделювання даних у Firebase складно. Але це найкращий спосіб почати миттєво. MongoDB - це база даних. Це дає багато потужних функцій. Але MongoDB при встановленні на будь-якій платформі вам потрібно керувати ним самостійно.

Коли я намагаюся вибрати між Firebase або MongoDB (або будь-якою БД). Я намагаюся відповісти на наступне.

  1. Чи існує багато запитів агрегації, які виконуються. (Як і у випадку з інструментом звітування чи інструментом BI). Якщо так, не переходьте на Firebase
  2. Чи потрібно мені проводити багато угод. (Якщо так, то я б не хотів переходити з firebase) (Трансакції дещо легкі, хоча після введення функцій, але це також накладні витрати, якщо потрібно підтримувати багато транзакцій)
  3. Яку часову шкалу я повинен мати, щоб налаштувати та працювати. (Firebase дуже просто налаштувати та інтегрувати).
  4. Чи є у мене досвід для збільшення масштабів БД та усунення проблем, пов’язаних із БД. (Firebase більше схожий на SAAS, тому не потрібно турбуватися про масштабованість)

13

Firebase надає деякі хороші функції, такі як відображення змін у режимі реального часу, легка інтеграція механізму аутентифікації та безліч інших вбудованих функцій для швидкої веб-розробки. Firebase, насправді робить веб-розробку такою простою, що ніколи не існує. База даних Firebase - це вилка MongoDB .

Яка перевага використання Firebase над MongoDB?

Ви можете скористатися всіма вбудованими функціями Firebase через MongoDB.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.