Firestore 概览

Firestore 是一种灵活且伸缩数据库,适用于在 Firebase 和 Google Cloud 上进行移动、Web 和服务器开发。Firestore 可以通过实时监听器使您的数据在各个客户端应用之间保持同步,并为移动和 Web 应用提供离线支持,帮助您构建无论网络延迟时间或互联网连接状况如何都能快速响应的应用。Firestore 还提供与其他 Firebase 和 Google Cloud 产品(包括 Cloud Run 函数)的无缝集成。

主要功能

灵活性 Firestore 数据模型支持灵活的分层数据结构。将您的数据存储在文档中,并整理成集合。文档中不仅可以包含子集合,还可以包含复杂的嵌套对象。
表达能力出色的查询 在 Firestore 中,您可以使用查询来检索特定的个别文档,或者检索某个集合中与查询参数匹配的所有文档。您的查询可以包含多个链式过滤条件,还可以将过滤和排序功能结合使用。默认情况下系统会为查询编制索引,所以查询性能与结果集的大小(而不是数据集的大小)成比例。
可扩容设计 Firestore 为您提供自动多区域数据复制、强一致性查询、原子批量操作和事务支持。
实时更新 Firestore 使用数据同步功能来更新所有已连接设备上的数据。但是,它也可以高效地进行简单的一次性提取式查询。
离线支持 Firestore 会缓存您的应用正在使用的数据,因此,即使在设备处于离线状态时,该应用也可以写入、读取、监听和查询数据。当设备恢复在线状态时,Firestore 会将所有本地更改同步回 Firestore。

工作原理

Firestore 是一种托管在云端的 NoSQL 数据库,除了 REST API 和 RPC API 之外,在 Node.js、Java、Python、Unity、C++ 和 Go 客户端库中也可以使用。Apple、Android 和 Web 应用也可以使用客户端库直接访问数据库。

按照 Firestore 的 NoSQL 数据模型,您要将数据存储在包含映射到值的字段的文档中。这些文档存储在集合中,而集合是文档中的容器,可用于整理数据和构建查询。文档支持许多不同的数据类型,包括简单的字符串和数值以及复杂的嵌套对象。您还可以在文档中创建子集合,并构建能够随数据库增长而扩容的分层数据结构。Firestore 数据模型可支持最适合您的应用的任何数据结构。

此外,Firestore 中的查询高效、灵活并且表达能力出色。创建浅查询可以在文档级别检索数据,而无需检索整个集合或任何嵌套的子集合。您可以为查询添加排序、过滤和数量限制功能,或添加游标以对结果进行分页。要想使您应用中的数据保持最新,但又不想在每次更新时都检索整个数据库,可添加实时监听器。将实时监听器添加到您的应用后,每当客户端应用监听的数据发生更改时,系统就会通过一个数据快照通知您,并且只检索新的更改。

借助适用于服务器端编程语言的 Identity and Access Management (IAM),为 Firestore 中的数据访问提供保护。对于 Android、Apple 平台和 JavaScript,请使用 Firebase Authentication 和 Firestore 安全规则保护您的数据。

后续步骤