【问题标题】:MongoDB vs Firebase [closed]MongoDB vs Firebase [关闭]
【发布时间】:2015-05-27 05:52:46
【问题描述】:

MongoDB vs Firebase

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

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

【问题讨论】:

  • @David 这不是基于意见的。 OP 询问哪个更好(这将基于意见),而是询问 FB 优于 MongoDb 的好处(如果有的话)。为了获得意见,我们需要在这里提取两者的优点和缺点,并判断哪种技术可能是首选
  • 我会推荐 @itsclarke 阅读这篇文章:crisp.chat/blog/…
  • @KirillSlatin 此问题现已结束。您可以在Gorilla vs Shark blog post 中了解为什么此类问题不受欢迎。虽然此博客中提到的非建设性原因不再可用,但它仍然非常广泛(列举答案中的所有差异很乏味),非常基于时间(可能会添加改变这一点的功能),通常不适合这个网站。
  • 为什么这个非常有用的信息会被关闭?这是 SO 的许多严重问题之一。它不鼓励其他人提出其他人可以从中受益的实际有用的问题。
  • @Uriel 这个问题已经结束,因为它要求一个数据库相对于另一个数据库的“优势”——这很难;对您来说“优势”可能对我来说不是“优势”(因此它变得更加依赖于用例) 最重要的是,MongoDB 和 Firebase 都是服务套件,因此它不会询问特定产品。如果我们将 MongoDB Realm 包含在其中,它们也有不同的用途,这是一个离线优先数据库,而 Firebase 是在线优先并具有离线持久性。这也是一个有 6 年历史的问题,两个平台的一些事情都发生了变化。

标签: ios mongodb firebase firebase-realtime-database mongodb-query


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

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

编辑 2:在被 Google 收购后,Firebase 现在在其基本功能的基础上提供了各种福利,而这些福利是您自己难以构建的:

  • 用于开发

    • Cloud Messaging:可靠地跨平台传递和接收消息
    • File Storage:轻松文件存储(包括iOS)
    • Hosting:从 Firebase 的服务器传送静态文件(包含在免费计划中)
    • Crash Reporting: 不是一个完整的日志服务,而是重要的帮助
  • 为了成长

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        但是,如果您需要制作小型应用或快速制作原型,Firebase 是一个不错的选择。这将是一种非常简单的方法。

        【讨论】:

          【解决方案5】:

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

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

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

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

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

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

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

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

          【讨论】:

          • 什么是Fireloop?,这是用firebase写一个rest api的一种方式吗?
          • 实际上我认为 angularfire 很棒,你有什么办法可以把它传递给你自己的数据库系统使用?,在这种情况下是 Mongo,所以你可以做使用三种数据方式绑定,并且能够即时更新您的值
          • 我喜欢您评论的最后一部分:“Firebase 已部署在世界各地,以实现世界各地的快速连接。”
          【解决方案6】:

          Firebase 是一套功能。

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

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

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

          1. 是否有许多聚合查询被执行。(如 报告工具或 BI 工具的情况)。如果是,请不要使用 Firebase
          2. 我需要执行大量交易吗? (如果是,那么我会 不喜欢使用firebase)(虽然交易有点容易 在引入功能之后,但如果很多的话,这也是一个开销 交易需要维护)
          3. 我需要什么时间线才能启动和运行。(Firebase 非常容易设置和集成)。
          4. 我是否具备扩展数据库和解决数据库相关问题的专业知识 东西。 (Firebase 更像 SAAS,因此无需担心可扩展性)

          【讨论】:

            【解决方案7】:

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

            正如其他人所说,如果您只关注数据库/查询方面,请坚持使用 mongo。

            【讨论】:

              【解决方案8】:

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

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

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

              【讨论】:

                猜你喜欢
                • 2011-02-22
                • 1970-01-01
                • 2017-05-25
                • 2014-12-29
                • 2011-03-23
                • 2013-09-17
                • 2021-06-18
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多