Cloud Firestore和Firebase实时数据库有什么区别?

Google刚刚发布了Cloud Firestore,它们是用于应用程序的新文档数据库。

我一直在阅读文档,但是Firestore和Firebase DB之间没有太多的区别。

重点是Firestore使用文档和集合,这些文档和集合与Firebase(这是一个带有JSON基础的传统NoSQL数据库)相比,可以方便地使用查询。

我想知道更多关于它们的区别或用法,或Firestore是否刚刚取代Firebase DB?

所以我写了一个关于这个问题的整个博客文章 ,我build议你检查一下(或官方文档 )以获得更完整的答案。

但是,如果你想快速( – )总结,这里是:

更好的查询和更加结构化的数据 – 虽然实时数据库只是一个巨大的JSON树,但Cloud Firestore更加结构化。 所有的数据由文档(基本上是键值存储)和集合(文档的集合)组成。 文件也会经常指向子集合,其中包含其他文件,这些文件本身可以包含其他文件,等等。

这种结构化的数据有两种方式帮助你。 首先, 所有查询都很浅 ,这意味着您可以请求文档,而不必抓取下面的所有数据。 这意味着您可以保持数据分层存储,而不必担心数据库保持浅层。 其次,你有更强大的查询。 例如,您现在可以跨多个字段进行查询,而无需创build组合(和非规格化)来自数据库其他部分的数据的“组合”字段。 在某些情况下,Cloud Firestore将直接运行这些查询,而在其他情况下,它将自动为您创build和维护索引。

按比例devise – Cloud Firestore将能够比实时数据库更好地扩展。 需要注意的是,您的查询可以扩展到结果集的大小,而不是数据集。 因此,无论数据集有多大,search都将保持快速。

手动抓取数据更简单 – 就像实时数据库一样,您可以在Cloud Firestore中设置侦听器,实时更改数据。 但是,如果您不想要这种行为,只需要简单的“获取我的数据”调用,那么Cloud Firestore也具有这种function,而且它是作为主要用例而构build的。 (它们比Realtime Database-land中的那个要好得多)

多区域支持 – 这基本上意味着更高的可靠性,因为您的数据一次跨多个数据中心共享。 但是你仍然有很强的一致性,这意味着你可以随时进行查询,并确保你得到最新版本的数据。

不同的定价模式 – 虽然实时数据库主要根据存储或networking带宽收费,但Cloud Firestore主要根据您执行的操作数量收费。 这会更好,还是更糟? 这取决于你的应用程序。

为了支持新闻应用程序,基于回合的多人游戏或类似自己的Stack Overflow版本,从价格angular度来看,Cloud Firestore可能看起来相当有利。 对于像实时群组绘图应用程序那样,您将多次更新发送给多个人,这可能会比实时数据库更昂贵。

为什么你仍然可能想要使用实时数据库 – 这归结于几个原因。 1)整个“对于频繁更新的应用程序来说可能会更便宜”,这是我之前提到的,2)它已经存在了很长时间,并且经过数千个应用程序的testing(Cloud Firestore仍处于testing阶段),3)它有更好的延迟,当您需要具有可靠的低延迟以获得实时感觉的东西时,实时数据库可能会更好地工作。

对于大多数新应用程序,我们build议您查看Cloud Firestore。 但是,如果您的应用程序已经在Realtime Database上,那么我不build议仅仅为了切换而切换,除非您有充足的理由这样做。

希望有所帮助!