Google刚刚发布了Cloud Firestore,这是他们针对应用程序的新文档数据库。
我一直在阅读文档,但是在Firestore和Firebase DB之间看不出很多区别。
重点是,与Firebase(具有JSON基础的传统noSQL数据库)相比,Firestore使用的文档和集合可轻松使用查询。
我想进一步了解它们的区别或用途,或者Firestore是否只是用来替换Firebase DB?
Google刚刚发布了Cloud Firestore,这是他们针对应用程序的新文档数据库。
我一直在阅读文档,但是在Firestore和Firebase DB之间看不出很多区别。
重点是,与Firebase(具有JSON基础的传统noSQL数据库)相比,Firestore使用的文档和集合可轻松使用查询。
我想进一步了解它们的区别或用途,或者Firestore是否只是用来替换Firebase DB?
Answers:
因此,我写了一篇有关此问题的完整博客文章,建议您查看一下(或官方文档)以获得更完整的答案。
但是,如果您需要快速的(-ish)摘要,则为:
更好的查询和更结构化的数据 -实时数据库只是一棵巨大的JSON树,而Cloud Firestore则更加结构化。您的所有数据均由文档(基本上是键值存储)和集合(即文档的集合)组成。文档还会频繁指向子集合,这些子集合包含其他文档,它们本身也可以包含其他文档,依此类推。
这种结构化数据可以通过两种方式帮助您。首先,所有查询都是浅层的,这意味着您可以在不获取其下所有数据的情况下请求文档。这意味着您可以以对您更有意义的方式分层存储数据,而不必担心使数据库变浅。其次,您拥有更强大的查询。例如,您现在可以跨多个字段进行查询,而不必创建那些组合(和去规范化)数据库其他部分数据的“组合”字段。在某些情况下,Cloud Firestore只会直接运行这些查询,而在其他情况下,它将为您自动创建和维护索引。
专为扩展而设计 -Cloud Firestore将比实时数据库更好地扩展。重要的是要注意您的查询扩展到结果集的大小,而不是数据集的大小。因此,无论您的数据集有多大,搜索都将保持快速。
手动获取数据更容易 -与实时数据库一样,您可以在Cloud Firestore中设置侦听器以实时流式传输更改。但是,如果您不希望这种行为,而只想进行简单的“获取我的数据”调用,Cloud Firestore也会这样做,并且它是作为主要用例内置的。(它们比once
实时数据库领域的调用要好得多)
多区域支持 -这基本上意味着更高的可靠性,因为您的数据可以同时在多个数据中心之间共享。但是您仍然具有很强的一致性,这意味着您始终可以进行查询,并可以确保获得最新版本的数据。
不同的定价模式 -实时数据库主要根据存储或网络带宽收费,而Cloud Firestore主要根据您执行的操作数量收费。这会好还是坏?这取决于您的应用程序。
从定价的角度来看,对于为新闻应用程序,回合制多人游戏或您自己的Stack Overflow版本提供动力,Cloud Firestore可能看起来非常优惠。对于像实时组绘图应用程序这样的应用程序,您要在一秒钟内将多个更新发送给多个人,它可能会比实时数据库贵。
为什么您仍然希望使用实时数据库 -归结为几个原因。1)我之前提到的整个“它对于进行大量频繁更新的应用程序可能会便宜一些”,2)它已经存在很长时间了,并且已经被成千上万的应用程序进行了实战测试,3)延迟时间更长当您需要具有可靠的低延迟的实时感觉时,实时数据库可能会更好地工作。
对于大多数新应用,我们建议您查看Cloud Firestore。但是,如果您的应用程序已经在实时数据库中,则我不建议您仅出于切换的目的而进行切换,除非您有充分的理由这样做。
希望有帮助!
您可以在此处阅读整篇文章:https : //medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0
Firebase Realtime database
它被构造为JSON树,但Cloud Firestore
将数据存储在文档(一组键值对)和集合(一组文档)中。
更多结构数据
实时数据库将数据存储在JSON树中,但Cloud firestore将数据存储在文档中,这与JSON非常相似。
在Cloud FireStore中,文档可以包含子集合和嵌套对象(如上图中的“电话”),它们都可以包括诸如字符串之类的原始字段(如上图中的“ name”,“ email”等)或复杂的对象(如上图)列表。
更好的查询
可扩展性
Cloud Firestore的扩展能力将优于实时数据库。请务必注意,查询性能与结果集的大小成正比,而不与数据集的大小成正比。因此,无论您的数据集有多大,搜索都将保持快速。
手动提取数据
我们可以像实时数据库一样在Cloud FireStore中实时监听数据,但在Cloud FireStore中,我们也可以手动获取数据(如果您只想一次获取任何数据)。
安全
在实时数据库中,我们需要使用验证规则分别验证数据,但在Cloud FireStore中,数据验证会自动进行。
写入数据
我们可以将多个操作作为一个批处理执行,并使用set()
,update()
或delete()
方法的任意组合以原子方式完成它们。
价钱
在实时数据库中,仅对带宽和存储收费,但收费较高。在Cloud FireStore中时,主要对数据库中执行的操作(读取,写入,删除)以及较低的带宽和存储收费。
它是一个改进的版本
Firebase数据库足以用于基本应用程序。但是它的功能不足以处理复杂的需求。这就是引入Cloud Firestore的原因。这是一些主要更改。
价钱
在Cloud Firestore中,费率降低了,即使它主要对数据库中执行的操作以及带宽和存储收费。您也可以设置每日支出限额。这是有关计费的完整详细信息。
Google的未来计划
当他们发现实时数据库的缺陷时,他们创建了另一种产品而不是改进旧产品。即使没有可靠的细节可以揭示其在实时数据库上的当前地位,但现在该是时候开始考虑可能会放弃它了。
还建议从Google链接: Firebase实时数据库与FireStore
摘自google docs,这里有一个小总结:
FireBase实时数据库是基于JSON的NO SQL DB,适用于区域性移动应用程序,通常用于实时/极低延迟地在用户/设备之间存储和同步数据。
FireStore是类似于JSON的NOSQL DB,旨在实现高并发,全局,易于自动扩展的持久性,针对具有典型用例(例如资产跟踪,实时分析,构建零售产品目录,社交用户)的任何客户端(不仅是移动应用)而设计个人资料,游戏排行榜,基于聊天的应用程序等。