179

MongoDB 与 Firebase

与 MongoDB 相比,使用 Firebase 有哪些量化优势?(不是意见)

我知道 Firebase 是一个基于云的服务,有自己的 API,但我觉得从长远来看,Mongo 可能会给我更大的控制权。

4

8 回答 8

139
  • Firebase是一个具有向后连接性的实时引擎。即,您可以构建一个跨平台应用程序,其中客户端订阅特定数据的事件,服务器主动通知客户端有关更改
  • 数据层为您托管。请注意,它具有高度可扩展性。这是一个不错的 kickstarter 解决方案。包括授权管理
  • 地火。实时地理坐标解决方案。
  • Firebase 的明显缺点是:
    • 一旦开始成长,您就必须为此付出代价
    • 您不能托管数据层(如果拥有数据至关重要,或者您为某个分离的子网开发应用程序)

编辑:这是一篇很好的文章,如何用 Node.js+MongoDb 替换您的应用程序中的 Firebase。它显示了您必须自己完成多少工作,并解释了,恕我直言,为什么初创公司(小型应用程序)应该从 Firebase 开始(如果需要对客户端进行实时更新)并继续使用 MongoDb(无论如何都是 self -书面解决方案)如果项目不断发展

编辑 2:在被Google Firebase 收购后,现在在其基本功能之上提供各种额外的好处,您将难以自行构建:

  • 用于发展

    • 云消息传递:可靠地跨平台传递和接收消息
    • 文件存储:简单的文件存储(包括iOS)
    • 托管:从 Firebase 的服务器传送静态文件(包含在免费计划中)
    • 崩溃报告:不是完整的日志记录服务,而是至关重要的帮助
  • 为了成长

    • 远程配置:即时自定义您的应用程序:适用于 A/B 测试
    • 动态链接:将用户发送到您应用内的正确位置
    • 通知:在适当的时候与用户互动
于 2015-03-24T02:16:54.913 回答
42

苹果和橙子。Firebase 是一个后端即服务,包含身份管理、实时数据视图和文档数据库。它在云中运行。

另一方面,MongoDB 是一个具有丰富查询语言的成熟数据库。原则上它在您自己的机器上运行,但有云提供商。

如果您正在寻找数据库组件,那么只有 MongoDB 更加成熟且功能丰富。

于 2015-03-24T02:17:03.037 回答
35

Firebase 专为实时更新而设计。它很容易与角度集成。两者都是 NoSQL 数据库。MongoDB 也可以通过 Socket.io 集成使用 Angular 来做到这一点。Meteor.js 还利用带有开放套接字连接的 MongoDB 进行实时更新。

MongoDB 可以在本地运行,也可以托管在许多不同的基于云的提供商上。在我看来,Firebase 非常适合小型应用程序,可以快速启动和运行。MongoDB 是更强大的大型应用程序的理想选择,实时集成是可能的,但需要更多的工作。

于 2015-03-24T02:16:16.587 回答
29

在大量使用 Firebase 之后,我开始寻找一些东西。

如果您打算将它用于大型实时应用程序,它不是最佳选择。它有自己的一系列问题,包括糟糕的错误处理系统和限制。您将花费大量时间尝试了解 Firebase 及其问题。一个项目也很容易成为一个失控的整体。就大型应用程序的后端而言,MongoDB 是一个更好的选择。

但是,如果您需要制作一个小型应用程序或快速制作原型,Firebase 是一个不错的选择。这将是一种非常简单的方式来开始运行。

于 2017-02-06T22:57:08.783 回答
25

我将根据 Firebase 的 Angular 库 AngularFire 来回答这个问题。

  1. Tl;博士:超级大国。:-)

  2. AngularFire 的三向数据绑定。Angular 将视图和 $scope 绑定在一起,也就是说,您的用户在视图中所做的事情会自动在局部变量中更新,并且当您的 JavaScript 更新局部变量时,视图会自动更新。借助 Firebase,云数据库也会自动更新。您不需要编写 $http.get 或 $http.put 请求,数据只是更新。

  3. 五路数据绑定,还有七路、九路等。我用AngularFire做了一个井字游戏。两个玩家可以一起玩,两个视图更新两个 $scope 和云数据库。您可以制作一个包含三个或更多玩家的游戏,他们都共享一个 Firebase 数据库。

  4. AngularFire 的 OAuth2 库可以通过 Facebook、GitHub、Google、Twitter、令牌和密码轻松进行授权。

  5. 双重安全。您可以将 Angular 路由设置为需要授权,并在 Firebase 中设置有关谁可以读取和写入数据的规则。

  6. 没有后端。您不需要使用 Node 和 Express 制作服务器。运行自己的服务器可能需要做很多工作,需要了解安全性,如果服务器出现故障,需要有人做一些事情等等。

  7. 快速地。如果您的服务器在旧金山,而客户端在圣何塞,那很好。但是对于班加罗尔的客户端连接到您的服务器会更慢。Firebase 部署在世界各地,以实现世界各地的快速连接。

于 2015-12-17T20:39:57.593 回答
18

Firebase 是一套功能。

  • 实时数据库
  • 托管
  • 验证
  • 贮存
  • 云消息传递
  • 远程配置
  • 测试实验室
  • 崩溃报告
  • 通知
  • 应用索引
  • 动态链接
  • 邀请
  • 广告词
  • AdMob

我相信您正在尝试将 Firebase Realtime Database 与 Mongo DB 进行比较。Firebase 实时数据库将数据存储为 JSON 格式,并将数据的所有更新同步到所有侦听数据的客户端。它将您从设置和扩展任何数据库所需的所有复杂性中抽象出来。我不会推荐你有很多需要聚合数据的复杂场景的 firebase。(需要 SUM/AVERAGE 类型的东西的查询)。尽管最近可以使用 Firebase 功能实现这一点。在 Firebase 中建模数据很棘手。但这是让您立即开始的最佳方式。MongoDB是一个数据库。这为您提供了许多强大的功能。但是MongoDB安装在任何平台上都需要自己管理。

当我尝试在 Firebase 或 MongoDB(或任何 DB)之间进行选择时。我尝试回答以下问题。

  1. 是否有许多聚合查询被执行。(如报告工具或 BI 工具的情况)。如果是,请不要选择 Firebase
  2. 我需要执行很多交易吗?(如果是,那么我不想使用firebase)(虽然在引入功能之后交易有点容易,但如果需要维护大量交易,这也是一种开销)
  3. 我需要什么时间线才能启动和运行。(Firebase 很容易设置和集成)。
  4. 我是否有专业知识来扩大数据库并解决与数据库相关的问题。(Firebase 更像 SAAS,因此无需担心可扩展性)
于 2017-09-12T10:40:33.900 回答
16

Firebase 提供了一些很好的功能,例如实时更改反射、身份验证机制的轻松集成以及许多其他内置功能,用于快速 Web 开发。Firebase,真的让 Web 开发变得如此简单,以至于从未存在过。Firebase 数据库是 MongoDB 的一个分支

与 MongoDB 相比,使用 Firebase 有什么优势?

您可以在 MongoDB上利用 Firebase 的所有内置功能。

于 2018-01-09T17:03:23.800 回答
16

以我的经验,如果你正在尝试做用户管理、数据库、消息类的应用程序,那么使用 Firebase 是一个巨大的优势,因为所有这些功能都已经很好地集成了。

就像其他人说的那样,如果您只关注数据库/查询方面,请坚持使用 mongo。

于 2017-02-28T04:10:45.927 回答