使用 Datastore 模式 Cloud Firestore

Firestore 是一个 NoSQL 文档数据库,能够自动扩缩、具备出色的性能,并且易于进行应用开发。Firestore 是 Datastore 的最新版本;与 Datastore 相比,这个新版本引入了多项改进功能。

由于 Datastore 模式 Firestore 针对服务器用例和 App Engine 进行了优化,因此,对于主要将由 App Engine 应用使用的数据库,我们建议使用 Datastore 模式 Firestore。原生模式 Firestore 最适合移动和实时通知用例。如需详细了解 Firestore 模式,请参阅选择原生模式或 Datastore 模式

将 Datastore 模式与 App Engine 结合使用

如需将 Datastore 模式与 App Engine 搭配使用,请执行以下操作:

  1. 如果您尚未这样做,请创建数据库并选择“Datastore 模式 Firestore”。

    您可以将现有的 Datastore 数据库与 App Engine 应用搭配使用。这些现有数据库将自动升级为 Datastore 模式 Firestore

    1. 在您的应用中,使用 go get cloud.google.com/go/datastore 命令将 Datastore 声明为依赖项。或者,您也可以在应用的 go.mod 文件中声明依赖项。请详细了解如何指定依赖项

    2. 使用 Google Cloud 客户端库读取和写入实体以及查询数据

    配置索引

    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 配额页面。