MongoDB VS Firebase
与 MongoDB 相比,Firebase 在数量上有哪些优势? (不是观点)
我知道 Firebase 是一个基于云的服务,有自己的 API,但我觉得从长远来看 Mongo 可能会给我更大的控制权。
Firebase 是为实时更新而设计的。它很容易与角结合。两者都是 NoSQL 数据库。MongoDB 也可以通过 Socket.io 集成 Angular 来实现这一点。Js 还使用带有开放套接字连接的 MongoDB 进行实时更新。
MongoDB 可以在本地运行,也可以托管在许多不同的基于云的提供商上。在我看来,Firebase 非常适合小型应用程序,启动和运行都非常快。MongoDB 是更健壮的大型应用程序的理想选择,实时集成是可能的,但它需要更多的工作。
编辑: 这里有一个很好的 文章如何用 Node.js + MongoDb 替换应用程序中的 Firebase。它展示了你需要自己做多少工作,并解释了为什么一个创业公司(小型应用)应该从 Firebase 开始(如果需要对客户进行实时更新的话) ,如果项目不断发展的话,应该继续使用 MongoDb (无论如何都是自己编写的解决方案)
编辑2: 在被 谷歌 Firebase 收购后,除了它的基本功能之外,现在还提供各种各样的额外福利,这些功能你很难自己构建:
为了发展
为了成长
苹果和橘子。Firebase 是一个后端即服务(Backend-as-a-Service) ,包含身份管理、实时数据视图和文档数据库。它在云端运行。
另一方面,MongoDB 是一个成熟的数据库,具有丰富的查询语言。原则上,它在您自己的机器上运行,但是也有云提供商。
如果您正在寻找数据库组件,那么只有 MongoDB 更加成熟和功能丰富。
我将用 AngularFire 来回答这个问题,它是 Firebase 的 Angular 库。
超能力: -)
AngularFire 的三路数据绑定。Angular 绑定了视图和 $scope,也就是说,用户在视图中的操作会自动更新本地变量,当 JavaScript 更新本地变量时,视图会自动更新。有了 Firebase,云数据库也可以自动更新。您不需要编写 $http.get 或 $http.put 请求,数据只是更新。
五路数据绑定、七路、九路等等。我用 AngularFire 做了个井字游戏。两个参与者可以一起玩,通过两个视图更新两个 $scope 和云数据库。你可以制作一个有三个或更多玩家的游戏,所有玩家共享一个 Firebase 数据库。
AngularFire 的 OAuth2库使 Facebook、 GitHub、 Google、 Twitter、令牌和密码的授权变得简单。
双重保安。您可以设置需要授权的 Angular 路由,并在 Firebase 中设置关于谁可以读写数据的规则。
没有后端。您不需要使用 Node 和 Express 创建服务器。运行您自己的服务器可能是一项繁重的工作,需要了解安全性,需要有人在服务器出现故障时执行某些操作,等等。
快点。如果您的服务器在旧金山,而客户端在圣何塞,那么没问题。但是对于班加罗尔的客户端来说,连接到您的服务器会比较慢。Firebase 部署在世界各地的快速连接。
在使用了大量的 Firebase 之后,我找到了一些东西。
如果你打算使用它的大型,实时应用程序,它不是最好的选择。它有自己的广泛的问题,包括一个糟糕的错误处理系统和局限性。你将花费大量的时间去理解 Firebase 和它的缺陷。对于一个项目来说,很容易变成一个失控的庞然大物。对于大型应用程序的后端来说,MongoDB 是一个更好的选择。
然而,如果你需要做一个小应用程序或快速原型的东西,Firebase 是一个很好的选择。这将是一个非常简单的方法,让我们可以立即开始工作。
根据我的经验,使用 Firebase 是一个巨大的优势,如果你正在尝试做用户管理,数据库,消息类应用程序,因为所有这些功能已经很好地集成。
正如其他人所说,如果您只关注数据库/查询方面,那么就坚持使用 mongo。
Firebase 是一套功能。
我相信你正在尝试比较 Firebase 实时数据库和 MongoDB。 Firebase Realtime Database 以 JSON 格式存储数据,并将数据的所有更新同步到所有正在监听数据的客户端。它将您从设置和扩展任何数据库所需的所有复杂性中抽象出来。我不建议你有很多复杂的情况下需要聚合数据的 Firebase。(需要求和/平均值之类的查询)。虽然这是最近可以实现的使用 Firebase 函数。在 Firebase 中建模数据是很棘手的。但这是让你即刻开始的最好方法。 MongoDB 是一个数据库。这给了你很多强大的功能。但是 MongoDB 安装在任何平台上都需要自己管理。
当我试图在 Firebase 或 MongoDB (或任何 DB)之间做出选择时,我会尝试回答以下问题。
Firebase 提供了一些很好的特性,比如实时变化反射,易于集成的认证机制,以及许多其他内置的特性,可以用于快速的 Web 开发。 真正使 Web 开发变得如此简单以至于根本不存在。
与 MongoDB 相比,使用 Firebase 的优势是什么?
您可以利用 Firebase 的所有内置功能而不是 MongoDB。