Firestore

17 Mar 2025 | 4 分钟阅读
Firebase Firestore

Firebase 有两种选择,即 Firebase 实时数据库(我们在上一节中学习了)和 Cloud Firestore。 Cloud Firestore 是较新的,但它不会取代 Firebase 实时数据库。 Cloud Firestore 是一种灵活且可扩展的 NoSQL 云数据库。 它用于存储和同步客户端和服务端开发的数据。 它用于来自 Google Cloud Platform 和 Firebase 的移动、Web 和服务器开发。 像 Firebase 实时数据库一样,它通过实时监听器将我们的数据同步到客户端应用程序。 它为移动和 Web 提供离线支持,因此我们可以创建响应式应用程序,无论网络延迟或互联网连接如何,都可以正常工作。

Cloud Firestore 还提供与 Google Cloud Platform 产品和其他 Firebase(包括云函数)的无缝集成。

Firebase Firestore

主要功能

灵活性

Firestore 数据模型支持灵活的、分层的数据结构。 它将我们的数据存储在文档中,这些文档被组织成集合。 在 Firestore 中,文档可以包含复杂的嵌套对象,而不是子集合。

富有表现力的查询

在 Firestore 中,我们可以使用查询来检索特定的、单独的文档,或者检索集合中所有与我们的查询参数匹配的文档。 我们的查询结合了过滤和排序,并且可以包括多个链接的过滤器。 查询性能与结果集的大小成正比,因为查询默认情况下是索引的。

实时更新

Firestore 与 Firebase 实时数据库非常相似。 Firestore 还使用数据同步来更新任何连接设备上的数据。 它旨在高效地进行简单的一次性提取查询。

离线支持

Cloud Firestore 使我们能够缓存应用程序正在积极使用的数据。 这使得应用程序即使在设备离线时也能读取、写入、查询和侦听数据。 当设备进入在线模式时,Cloud Firestore 会将本地更改同步回它。

设计为可扩展

Cloud Firestore 为我们提供了 Google Cloud Platform 的最佳基础设施:自动多区域数据复制、原子批量操作、强大的 一致性保证和真正的事务支持。 我们设计 Cloud Firestore 旨在处理来自世界上最大的应用程序的最严峻的数据库工作负载。

它是如何工作的?

Cloud Firestore 是一种云托管的 NoSQL 数据库,我们的 iOS、Android 和 Web 应用程序可以直接通过原生 SDK 访问它。 除了 REST 和 RPC API 之外,Cloud Firestore 还提供原生 Node.js、Java、Python 和 Go SDK。

Firebase Firestore

在 Cloud Firestore 的 NoSQL 数据模型之后,我们可以将数据存储在具有值字段映射的文档中。 这些文档存储在名为集合的容器中。 这些容器用于组织我们的数据和创建查询。 文档支持不同的数据类型,从简单的字符串和数字到复杂的嵌套对象。 我们还可以在文档中创建子集合,并创建一个分层数据结构,该结构可以扩展到我们的数据库的增长。 Firestore 数据模型支持最适合我们应用程序的任何数据结构。

此外,Cloud Firestore 中的查询富有表现力、高效且灵活。 创建浅层查询以在文档级别检索数据,而无需检索整个集合或任何嵌套的细分。 为我们的查询或游标添加排序、过滤和限制以索引结果。 向我们的应用程序添加实时监听器以保持数据运行。 每次更新时,无需恢复整个数据库。

向我们的应用程序添加实时监听器会在我们的客户应用程序更改数据时通知我们数据快照,仅获取新的更改。

为了保护我们在 Cloud Firestore 中的数据访问,Firebase 身份验证和 Cloud Firestore 安全规则用于身份和访问管理 (IAM)。

Firestore 的特性

Firestore 具有以下特性

Firebase Firestore

安全性

对于数据,Cloud Firestore 具有内置的安全访问控制。 它可以通过配置语言实现简单的数据验证。

Datastore 模式

Cloud Firestore 支持 Datastore API。 我们不需要对现有的 Datastore 应用程序进行任何更改。 我们可以期望类似的性能特征和定价,并具有强大的稳定性的附加优势。

自动升级

在 Cloud Firestore GA 版本发布后不久,Cloud Datastore 数据库将立即以原生方式升级。 无需更改代码,并且我们的应用程序没有停机时间。

ACID 事务

Cloud Firestore 支持事务,因此如果事务中的任何操作失败(且无法撤回),则整个事务将失败。

多区域复制

借助自动多区域复制和强大的稳定性,即使发生灾难,我们的数据也是安全且可用的。

强大的查询引擎

Cloud Firestore 允许我们对 NoSQL 数据运行复杂的查询,而不会降低性能。 这使我们能够更灵活地构建数据。

专为云原生应用程序而构建

移动和 Web 应用程序包括典型的与多用户、零售产品目录、IoT 资产跟踪、社交用户资料和活动、通信和游戏排行榜协作的工作负载。