使用Firebase相较于MongoDB有哪些数量上的优势?(不包含观点)
我知道Firebase是一种基于云的服务,并且具有自己的API,但我认为Mongo在长期内可能给我更多的控制。
使用Firebase相较于MongoDB有哪些数量上的优势?(不包含观点)
我知道Firebase是一种基于云的服务,并且具有自己的API,但我认为Mongo在长期内可能给我更多的控制。
编辑:这里有一篇不错的文章,介绍如何使用Node.js+MongoDb替换您的应用程序中的Firebase。它展示了您需要自己完成多少工作,并且解释了为什么初创企业(小型应用程序)应该从Firebase(如果需要向客户端提供实时更新)开始,并在项目不断发展时继续使用MongoDb(在任何情况下都是自己编写的解决方案)。
编辑2:在被Google收购后,Firebase现在提供了各种额外的福利,这是您自己很难构建的基本功能之上:
开发用途
为了增长
苹果和橘子。Firebase是一个后端即服务平台,包含身份管理、实时数据视图和文档数据库等功能。它运行在云上。
另一方面,MongoDB是一种功能丰富的完整数据库,具有丰富的查询语言。原则上它可以在你自己的机器上运行,但也有云服务提供商。
如果你只需要数据库组件,那么MongoDB更加成熟和功能丰富。
Firebase旨在实时更新。它很容易与Angular集成。两者都是NoSQL数据库。MongoDB也可以通过Socket.io集成与Angular一起做到这一点。Meteor.js还使用带有打开套接字连接的MongoDB进行实时更新。
MongoDB可以本地运行,也可以托管在许多不同的基于云的提供商上。在我看来,Firebase非常适合较小的应用程序,非常快速地启动和运行。MongoDB非常适合更强大的大型应用程序,实时集成是可能的,但需要更多的工作。
经过大量使用Firebase后,我发现了一些问题。
如果你想用它来开发大型实时应用程序,那么Firebase不是最好的选择。它有自己的一系列问题,包括糟糕的错误处理系统和限制。你将花费大量时间来理解Firebase及其细节。此外,项目很容易变成一个失控的庞然大物。MongoDB在作为大型应用的后端方面要比Firebase好得多。
然而,如果你需要制作一个小型应用程序或快速原型,Firebase是一个很好的选择。它是一个极其简单的快速启动方式。
我将通过AngularFire,Firebase针对Angular的库来回答这个问题。
Tl;dr: 超能力。 :-)
AngularFire三向数据绑定。Angular绑定视图和$scope,即您的用户在视图中执行的操作会自动更新本地变量,并且当JavaScript更新本地变量时,视图也会自动更新。使用Firebase,云数据库也会自动更新。您不需要编写$http.get或$http.put请求,数据仅需更新。
五向、七向、九向等数据绑定。 我使用AngularFire制作了一个井字游戏。两个玩家可以一起玩,两个视图更新两个$scopes和云数据库。 您可以制作一个包含三个或更多玩家的游戏,所有玩家共享一个Firebase数据库。
AngularFire的OAuth2库使得使用Facebook、GitHub、Google、Twitter、令牌和密码进行授权变得容易。
双重安全性。您可以设置Angular路由要求进行授权,并在Firebase中设置规则,指定谁可以读取和写入数据。
没有后端。 您不需要使用Node和Express创建服务器。 运行自己的服务器可能需要大量工作,需要了解安全性,并要求某人在服务器关闭时执行某些操作等。
速度快。 如果您的服务器在旧金山,客户端在圣何塞,那么很好。 但是对于连接到服务器的孟买客户端来说,速度会慢一些。Firebase在全球部署,可以实现快速连接。
Firebase是一套包含以下功能的技术套件:
我认为你正在试图将Firebase实时数据库与MongoDB进行比较。 Firebase实时数据库以JSON格式存储数据,并将数据更新同步到所有监听该数据的客户端。它摆脱了设置和扩展任何数据库所需的所有复杂性。如果需要聚合数据(需要SUM / AVERAGE之类的查询),则不建议使用Firebase。尽管最近可以使用Firebase函数来实现这一点,但在Firebase中对数据进行建模是棘手的。但它是立即启动的最佳方式。 MongoDB是一个数据库,具有许多强大的功能。但是,安装在任何平台上的MongoDB都需要自己管理。
当我尝试在Firebase或MongoDB(或任何数据库)之间进行选择时,我会尝试回答以下问题。
就我的经验而言,如果你正在尝试进行用户管理、数据库、消息传递等应用程序的开发,使用Firebase是一个巨大的优势,因为所有这些功能都已经很好地集成在了一起。
正如其他人所说,如果你只关注数据库/查询方面,那么请坚持使用Mongo。
Firebase提供了一些很好的功能,比如实时反映变化、易于集成身份验证机制,以及许多其他内置功能,可以加速Web开发。
Firebase真正使Web开发简单,这是从未有过的。
Firebase数据库是MongoDB的一个分支。
使用Firebase相比MongoDB有什么优势?
你可以利用Firebase的所有内置功能,这是MongoDB所没有的。