MongoDB VS Firebase

MongoDB VS Firebase

与 MongoDB 相比,Firebase 在数量上有哪些优势? (不是观点)

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

134665 次浏览

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

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

  • Firebase 是一个具有向后连接的实时引擎。也就是说,你可以构建一个跨平台的应用程序,客户端订阅特定数据上的事件,服务器主动通知客户端关于更改的信息
  • 数据层是为您托管的。注意它是高度可伸缩的。这是一个不错的众筹解决方案。包括授权管理
  • 地理火力,实时地理坐标解决方案。
  • Firebase 的明显缺点是:
    • 一旦你开始长大,你就要为此付出代价
    • 你不能托管数据层(如果拥有数据是关键,或者你为一些分离的子网开发一个应用程序)

编辑: 这里有一个很好的 文章如何用 Node.js + MongoDb 替换应用程序中的 Firebase。它展示了你需要自己做多少工作,并解释了为什么一个创业公司(小型应用)应该从 Firebase 开始(如果需要对客户进行实时更新的话) ,如果项目不断发展的话,应该继续使用 MongoDb (无论如何都是自己编写的解决方案)

编辑2: 在被 谷歌 Firebase 收购后,除了它的基本功能之外,现在还提供各种各样的额外福利,这些功能你很难自己构建:

  • 为了发展

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

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

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

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

我将用 AngularFire 来回答这个问题,它是 Firebase 的 Angular 库。

  1. 超能力: -)

  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 部署在世界各地的快速连接。

在使用了大量的 Firebase 之后,我找到了一些东西。

如果你打算使用它的大型,实时应用程序,它不是最好的选择。它有自己的广泛的问题,包括一个糟糕的错误处理系统和局限性。你将花费大量的时间去理解 Firebase 和它的缺陷。对于一个项目来说,很容易变成一个失控的庞然大物。对于大型应用程序的后端来说,MongoDB 是一个更好的选择。

然而,如果你需要做一个小应用程序或快速原型的东西,Firebase 是一个很好的选择。这将是一个非常简单的方法,让我们可以立即开始工作。

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

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

Firebase 是一套功能。

  • 实时数据库
  • 主机
  • 认证
  • 储藏室
  • 云消息
  • 远程配置
  • 实验室
  • 事故报告
  • 通知
  • 应用程序索引
  • 动态连结
  • 邀请函
  • AdWords
  • AdMob

我相信你正在尝试比较 Firebase 实时数据库和 MongoDB。 Firebase Realtime Database 以 JSON 格式存储数据,并将数据的所有更新同步到所有正在监听数据的客户端。它将您从设置和扩展任何数据库所需的所有复杂性中抽象出来。我不建议你有很多复杂的情况下需要聚合数据的 Firebase。(需要求和/平均值之类的查询)。虽然这是最近可以实现的使用 Firebase 函数。在 Firebase 中建模数据是很棘手的。但这是让你即刻开始的最好方法。 MongoDB 是一个数据库。这给了你很多强大的功能。但是 MongoDB 安装在任何平台上都需要自己管理。

当我试图在 Firebase 或 MongoDB (或任何 DB)之间做出选择时,我会尝试回答以下问题。

  1. 是否有许多聚合查询被执行 报告工具或 BI 工具的情况下)。如果是不去火库
  2. 我需要进行大量的交易吗? (如果是的话,我会的。) 不喜欢用 firebase)(交易是有点容易,虽然 在引入函数之后,但是这也是一个开销,如果很多 交易需要维持)
  3. 我需要什么时间让一切恢复正常 非常容易设置和集成)。
  4. 我有专业知识,以扩大数据库和故障排除数据库相关 (Firebase 更像是 SAAS,所以不需要担心可伸缩性)

Firebase 提供了一些很好的特性,比如实时变化反射,易于集成的认证机制,以及许多其他内置的特性,可以用于快速的 Web 开发。 真正使 Web 开发变得如此简单以至于根本不存在。

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

您可以利用 Firebase 的所有内置功能而不是 MongoDB。