Firestore 是一个 NoSQL 文档数据库,能够自动扩缩、具备出色的性能,并且易于进行应用开发。Firestore 是 Datastore 的最新版本;与 Datastore 相比,这个新版本引入了多项改进功能。
由于 Datastore 模式 Firestore 针对服务器用例和 App Engine 进行了优化,因此,对于主要将由 App Engine 应用使用的数据库,我们建议使用 Datastore 模式 Firestore。原生模式 Firestore 最适合移动和实时通知用例。如需详细了解 Firestore 模式,请参阅选择原生模式或 Datastore 模式。
将 Datastore 模式与 App Engine 结合使用
如需将 Datastore 模式与 App Engine 搭配使用,请执行以下操作:
如果您尚未这样做,请创建数据库并选择“Datastore 模式 Firestore”。
您可以将现有的 Datastore 数据库与 App Engine 应用搭配使用。这些现有数据库将自动升级为 Datastore 模式 Firestore。
在您的应用中,使用
go get cloud.google.com/go/datastore
命令将 Datastore 声明为依赖项。或者,您也可以在应用的go.mod
文件中声明依赖项。请详细了解如何指定依赖项。
配置索引
Datastore 模式使用索引来处理应用执行的每个查询。每当实体更改时,这些索引都会更新,因此在应用执行查询时,系统可以快速返回结果。
Datastore 模式会自动创建单属性索引,用于简单类型的查询。对于包含多个属性的复杂查询,您需要在应用的
index.yaml
文件中配置复合索引。App Engine 开发服务器将使用运行测试所需的复合索引更新
index.yaml
文件。同样,Datastore 模式模拟器可以在您运行测试时生成索引。如果您不运行本地测试或测试不包含复杂查询,您还可以手动将索引添加到应用的
index.yaml
文件。设置数据库权限
默认情况下,您的应用拥有对 Google Cloud 项目中的 Datastore 模式和 Firestore 数据库执行读写操作所需的所有权限。
为了管理这些权限,每个 App Engine 应用都会使用一个默认服务账号,该账号提供对应用所属项目中的 Datastore 模式和 Firestore 数据库的所有读写权限。您可以更改默认服务账号的权限,但您的应用可能会失去访问权限,除非您分配了拥有所需权限的 IAM 角色。
如需了解如何允许其他用户、应用或项目访问数据库,请参阅访问数据库。
使用 Datastore 模式模拟器进行本地测试
Google Cloud CLI 包含 Datastore 模式生产环境的本地模拟器。您可以使用该模拟器在本地开发和测试应用。此外,该模拟器有助于为 Datastore 模式生产实例生成索引,以及删除不必要的索引。如果您使用 App Engine 本地开发服务器来测试应用,则可以通过在启动服务器时设置
--support_datastore_emulator=true
标志来确保服务器使用 Datastore 模式模拟器。如果您使用的是 Datastore 模式模拟器,那么 dev_appserver 将显示以下内容:
... Using Cloud Datastore Emulator.
价格、配额和限制
Datastore 模式会提供免费配额,但具有每日限制。对于付费账号,存储、读取和写入操作次数不受限制。如需了解详情,请参阅 Datastore 配额页面。