Firestore 概览

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

主要功能

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

工作原理

Firestore 是一种托管在云端的 NoSQL 数据库,除 REST 和 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 安全规则保护您的数据。

后续步骤