MongoDB与Firebase

时间:2015-03-24 02:10:03

标签: mongodb firebase

使用Firebase而不是MongoDB有哪些定量优势? (不是意见)

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

8 个答案:

答案 0 :(得分:105)

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

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

编辑2:被Google收购后,Firebase现在提供各种特权,除了你自己难以构建的基本功能之外:

  • 发展

    • Cloud Messaging:可靠地跨平台发送和接收消息
    • File Storage:简单的文件存储(包括iOS)
    • Hosting:从Firebase的服务器提供静态文件(包含在免费方案中)
    • Crash Reporting:不是完整的日志服务,而是重要的帮助
  • 促进增长

答案 1 :(得分:31)

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

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

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

答案 2 :(得分:22)

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

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

答案 3 :(得分:18)

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

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

  2. AngularFire的三向数据绑定。 Angular绑定视图和$ scope,即用户在视图中执行的操作会自动更新局部变量,当JavaScript更新局部变量时,视图会自动更新。借助Firebase,云数据库也可以自动更新。您不需要编写$ http.get或$ http.put请求,数据只会更新。

  3. 五向数据绑定,七向,九向等。我使用AngularFire制作了一个井字游戏。两个玩家可以一起玩,两个视图更新两个$ scope和cloud数据库。您可以与三个或更多玩家一起制作游戏,共享一个Firebase数据库。

  4. AngularFire的OAuth2库使用Facebook,GitHub,Google,Twitter,令牌和密码轻松授权。

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

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

  7. 快速。如果你的服务器在旧金山,客户在圣何塞,那很好。但对于班加罗尔的客户来说,连接到您的服务器会比较慢。 Firebase在世界各地部署,以便在任何地方快速连接。

答案 4 :(得分:18)

使用Firebase后,我已经找到了一些东西。

如果您打算将其用于大型实时应用,那么它不是最佳选择。它有各种各样的问题,包括错误的错误处理系统和限制。您将花费大量时间来了解Firebase及其存在的问题。对于一个项目而言,它也很容易变成一个失控的整体事物。就大型应用程序的后端而言,MongoDB是一个更好的选择。

但是,如果你需要制作一个小应用程序或快速原型,Firebase是一个很好的选择。它是一种非常简单的方法,可以立即投入使用。

答案 5 :(得分:10)

Firebase是一套功能。

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

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

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

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

答案 6 :(得分:7)

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

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

答案 7 :(得分:7)

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

  

使用Firebase而不是MongoDB有什么好处?

您可以通过MongoDB利用 Firebase的所有内置功能