谷歌刚刚发布了 Cloud Firestore,这是他们新的应用文档数据库。
我一直在阅读文档,但我没有看到 Firestore 和 Firebase DB 之间有很多区别。
重点是 Firestore 使用文档和集合,与 Firebase 相比,它允许轻松使用查询,Firebase 是具有 JSON 基础的传统 noSQL 数据库。
我想更多地了解它们的区别或用法,或者 Firestore 是否刚刚取代了 Firebase DB?
所以我写了一篇关于这个问题的完整博客文章,我建议你查看它(或官方文档)以获得更完整的答案。
但是如果你想要快速(-ish)总结,这里是:
更好的查询和更结构化 的数据——虽然实时数据库只是一个巨大的 JSON 树,但 Cloud Firestore 更结构化一些。您的所有数据都由文档(基本上是键值存储)和集合(文档集合)组成。文档还会经常指向子集合,这些子集合包含其他文档,这些文档本身可以包含其他文档,依此类推。
这种结构化数据可以通过两种方式帮助您。首先, 所有查询都是浅的 ,这意味着您可以请求文档而无需抓取下面的所有数据。这意味着您可以以一种对您更有意义的方式分层存储数据,而不必担心保持数据库浅层。其次,您有更强大的查询。例如,您现在可以跨多个字段进行查询,而无需创建那些组合(和非规范化)来自数据库其他部分的数据的“组合”字段。在某些情况下,Cloud Firestore 只会直接运行这些查询,而在其他情况下,它会自动为您创建和维护索引。
为扩展而设计 ——Cloud Firestore 将能够比实时数据库更好地扩展。请务必注意,您的查询会根据结果集的大小而不是数据集的大小进行缩放。因此,无论您的数据集有多大,搜索都将保持快速。
更轻松地手动获取数据 - 与实时数据库一样,您可以在 Cloud Firestore 中设置侦听器以实时流式传输更改。但是,如果您不想要这种行为,而只想要一个简单的“获取我的数据”调用,Cloud Firestore 也有,并且它是作为主要用例内置的。once(它们比实时数据库领域的调用要好得多)
once
多区域支持 ——这基本上意味着更高的可靠性,因为您的数据一次在多个数据中心共享。但是您仍然具有很强的一致性,这意味着您始终可以进行查询并确保您获得的是最新版本的数据。
不同的定价模式 ——实时数据库主要根据存储或网络带宽收费,而 Cloud Firestore 主要根据您执行 的操作数量收费。 这会更好,还是更糟?这取决于您的应用程序。
对于新闻应用程序、回合制多人游戏或类似您自己的 Stack Overflow 版本的支持,从定价的角度来看,Cloud Firestore 可能看起来非常有利。对于像实时群组绘图应用程序这样的应用程序,您在一秒钟内向多人发送多个更新,它可能会比实时数据库更昂贵。
为什么您仍然希望使用实时数据库 ——归结为几个原因。
我之前提到的整个“对于进行大量频繁更新的应用程序来说可能会更便宜”,
它已经存在了很长时间,并且经过了数千个应用程序的实战测试,
它有更好的延迟,当您需要具有可靠低延迟的东西以获得实时感觉时,实时数据库可能会更好地工作。
对于大多数新应用,我们建议您查看 Cloud Firestore。但是如果你有一个已经在实时数据库中的应用程序,我真的不建议仅仅为了切换而切换,除非你有一个令人信服的理由这样做。
希望有帮助!