小编典典

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

all

谷歌刚刚发布了 Cloud Firestore,这是他们新的应用文档数据库。

我一直在阅读文档,但我没有看到 Firestore 和 Firebase DB 之间有很多区别。

重点是 Firestore 使用文档和集合,与 Firebase 相比,它允许轻松使用查询,Firebase 是具有 JSON 基础的传统 noSQL
数据库。

我想更多地了解它们的区别或用法,或者 Firestore 是否刚刚取代了 Firebase DB?


阅读 97

收藏
2022-03-29

共1个答案

小编典典

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

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

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

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

为扩展而设计 ——Cloud Firestore
将能够比实时数据库更好地扩展。请务必注意,您的查询会根据结果集的大小而不是数据集的大小进行缩放。因此,无论您的数据集有多大,搜索都将保持快速。

更轻松地手动获取数据 - 与实时数据库一样,您可以在 Cloud Firestore
中设置侦听器以实时流式传输更改。但是,如果您不想要这种行为,而只想要一个简单的“获取我的数据”调用,Cloud Firestore
也有,并且它是作为主要用例内置的。once(它们比实时数据库领域的调用要好得多)

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

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

对于新闻应用程序、回合制多人游戏或类似您自己的 Stack Overflow 版本的支持,从定价的角度来看,Cloud Firestore
可能看起来非常有利。对于像实时群组绘图应用程序这样的应用程序,您在一秒钟内向多人发送多个更新,它可能会比实时数据库更昂贵。

为什么您仍然希望使用实时数据库 ——归结为几个原因。

  1. 我之前提到的整个“对于进行大量频繁更新的应用程序来说可能会更便宜”,

  2. 它已经存在了很长时间,并且经过了数千个应用程序的实战测试,

  3. 它有更好的延迟,当您需要具有可靠低延迟的东西以获得实时感觉时,实时数据库可能会更好地工作。

对于大多数新应用,我们建议您查看 Cloud
Firestore。但是如果你有一个已经在实时数据库中的应用程序,我真的不建议仅仅为了切换而切换,除非你有一个令人信服的理由这样做。

希望有帮助!

2022-03-29