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

157

Каковы количественные преимущества использования Firebase перед MongoDB? (не мнения)

Я знаю, что Firebase - это облачная служба с собственным API, но мне кажется, что Mongo может дать мне больший контроль в долгосрочной перспективе.

Itsclarke
источник
55
@ Дэвид Это не основано на мнении. OP не спрашивает, что лучше (что было бы основано на мнении), но спрашивает о преимуществах (если таковые имеются) FB над MongoDb. Чтобы иметь мнение, нам нужно выделить здесь преимущества обоих и недостатки обоих и решить, какая технология может быть предпочтительнее
Кирилл Слатин
Я бы порекомендовал @itsclarke прочитать это: crisp.chat/blog/…
Джуниор
2
@KirillSlatin Этот вопрос закрыт. Вы можете прочитать, почему подобные вопросы не приветствуются в блоге Gorilla vs Shark . Хотя неконструктивная причина, упомянутая в этом блоге, больше не доступна, она все еще очень обширна (перечисление всех различий в ответе утомительно), очень привязана ко времени (могут быть добавлены функции, которые меняют это) и, как правило, не является хорошей подходит для этого сайта.
Erik A

Ответы:

125
  • Firebase - это движок реального времени с обратной связью. То есть вы можете создать кросс-платформенное приложение, в котором клиенты подписываются на события по определенным данным, а сервер активно информирует клиентов об изменениях.
  • Уровень данных размещен для вас. Имейте в виду, что он хорошо масштабируется. Хорошее решение для кикстартера. Включая управление авторизацией
  • Geo-Fire. Решение географических координат в реальном времени.
  • Очевидные недостатки Firebase:
    • Вы должны заплатить за это, как только начнете расти
    • Вы не можете разместить уровень данных (если владение данными критично или вы разрабатываете приложение для какой-то отдельной подсети)

РЕДАКТИРОВАТЬ: вот хорошая статья, как заменить Firebase в вашем приложении на Node.js + MongoDb. Он показывает, сколько работы вам придется выполнять самостоятельно, и объясняет, IMHO, почему запуск (небольшое приложение) должен начинаться с Firebase (если требуются обновления для клиентов в реальном времени) и переходить к MongoDb (в любом случае самостоятельно -письменное решение), если проект продолжает развиваться

РЕДАКТИРОВАТЬ 2: после приобретения Google Firebase теперь предлагает различные льготы помимо своих основных функций, которые вам будет сложно создать самостоятельно:

  • Для развития

  • Для роста

    • Remote Config : настраивайте приложение на лету: подходит для A / B-тестирования
    • Динамические ссылки : направляйте пользователей в нужное место внутри вашего приложения.
    • Уведомления : общайтесь с пользователями в нужный момент
Кирилл Слатин
источник
40

Яблоки и апельсины. Firebase - это Backend-as-a-Service, содержащий управление идентификацией, представления данных в реальном времени и базу данных документов. Он работает в облаке.

С другой стороны, MongoDB - это полноценная база данных с богатым языком запросов. В принципе, он работает на вашем собственном компьютере, но есть облачные провайдеры.

Если вы ищете компонент базы данных, только MongoDB будет более зрелым и многофункциональным.

Кес де Кутер
источник
32

Firebase предназначена для обновлений в реальном времени. Легко интегрируется с angular. Обе базы данных NoSQL. MongoDB также может сделать это с помощью Angular через интеграцию с Socket.io. Meteor.js также использует MongoDB с открытым сокетом для обновлений в реальном времени.

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

Byrdr
источник
24

После значительного использования Firebase я кое-что нашел.

Если вы собираетесь использовать его для больших приложений в реальном времени, это не лучший выбор. У него есть свой собственный широкий спектр проблем, включая плохую систему обработки ошибок и ограничения. Вы потратите много времени, пытаясь понять Firebase и ее изгибы. Проект также довольно легко превратиться в монолитную вещь, выходящую из-под контроля. MongoDB - гораздо лучший выбор в качестве серверной части для большого приложения.

Однако, если вам нужно создать небольшое приложение или быстро создать прототип, Firebase - отличный выбор. Это будет невероятно простой способ взяться за дело.

Рамзи К.
источник
23

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

  1. Tl; dr: суперсилы. :-)

  2. Трехсторонняя привязка данных AngularFire. Angular связывает представление и $ scope, то есть то, что ваши пользователи делают в представлении, автоматически обновляется в локальных переменных, а когда ваш JavaScript обновляет локальную переменную, представление автоматически обновляется. С Firebase облачная база данных также обновляется автоматически. Запросы $ http.get или $ http.put писать не нужно, данные просто обновляются.

  3. Пятисторонняя привязка данных, семисторонняя, девятисторонняя и т. Д. Я сделал игру в крестики-нолики, используя AngularFire. Два игрока могут играть вместе, при этом два представления обновляют две области $ и облачную базу данных. Вы можете создать игру с тремя или более игроками, использующими одну базу данных Firebase.

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

  5. Двойная безопасность. Вы можете настроить свои маршруты Angular так, чтобы они требовали авторизации, и настроить правила в Firebase о том, кто может читать и записывать данные.

  6. Нет бэкенда. Вам не нужно делать сервер с Node и Express. Запуск собственного сервера может потребовать много работы, требовать знания о безопасности, требовать, чтобы кто-то что-то сделал, если сервер выйдет из строя и т. Д.

  7. Быстро. Если ваш сервер находится в Сан-Франциско, а клиент - в Сан-Хосе, прекрасно. Но для клиента в Бангалоре подключение к вашему серверу будет медленнее. Firebase развернута по всему миру для быстрого подключения везде.

Томас Дэвид Кехо
источник
что такое Fireloop? это способ написать rest api с firebase?
ashish
на самом деле я думаю, что angularfire потрясающий, есть ли способ взять его и передать для использования с вашей собственной системой баз данных? В данном случае с Mongo, так что было бы замечательно, что вы можете использовать три привязки данных и также, чтобы иметь возможность мгновенно обновлять свои значения
Kross
Мне нравится ваша последняя часть комментария: «Firebase развернута по всему миру для быстрого подключения везде».
Лестер
16

Firebase - это набор функций.

  • База данных в реальном времени
  • Хостинг
  • Аутентификация
  • Место хранения
  • Обмен сообщениями в облаке
  • Удаленная конфигурация
  • Тестовая лаборатория
  • Отчеты о сбоях
  • Уведомления
  • Индексирование приложений
  • Динамические ссылки
  • Приглашает
  • AdWords
  • AdMob

Я считаю, что вы пытаетесь сравнить базу данных Firebase Realtime с Mongo DB. База данных Firebase Realtime хранит данные в формате JSON и синхронизируется со всеми обновлениями данных для всех клиентов, слушающих данные. Он избавляет вас от всей сложности, необходимой для настройки и масштабирования любой базы данных. Я не буду рекомендовать firebase там, где у вас много сложных сценариев, в которых требуется агрегирование данных (запросы, требующие типа SUM / AVERAGE). Хотя в последнее время это стало возможным с помощью функций Firebase. Моделирование данных в Firebase непросто. Но это лучший способ мгновенно начать работу. MongoDB - это база данных. Это дает вам множество мощных функций. Но при установке MongoDB на любую платформу вам нужно управлять им самостоятельно.

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

  1. Выполняется ли много запросов агрегирования (например, в случае инструмента отчетности или инструмента бизнес-аналитики). Если да, не переходите на Firebase
  2. Мне нужно выполнить много транзакций. (Если да, то я бы не хотел использовать firebase) (Транзакции несколько просты, хотя после введения функций, но это также накладные расходы, если необходимо поддерживать много транзакций)
  3. Какой график мне нужен, чтобы все заработало (Firebase очень легко настроить и интегрировать).
  4. Есть ли у меня опыт масштабирования БД и решения проблем, связанных с БД. (Firebase больше похожа на SAAS, поэтому не нужно беспокоиться о масштабируемости)
Suvankar Bose
источник
14

По моему опыту, работа с Firebase является огромным преимуществом, если вы пытаетесь управлять пользователями, базами данных, приложениями для обмена сообщениями, поскольку все эти функции уже хорошо интегрированы.

Как уже говорили другие, если вы просто сосредоточены на аспекте базы данных / запросов, придерживайтесь mongo.

Нам Ким
источник
14

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

В чем преимущество использования Firebase перед MongoDB?

Вы можете использовать все встроенные функции Firebase поверх MongoDB.

мнхмилу
источник