区域 ID
REGION_ID
是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r
包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。
详细了解区域 ID。
使用经过身份验证的用户信息来存储和检索特定于用户的数据,并让每位用户在使用您的网络服务时得到个性化的体验。
在上一步中,您更新了网络服务,可显示所有用户的最近十个请求。此步骤中将使用经过身份验证的用户信息来更新网络服务,以便该页面仅列出当前经过身份验证的用户发出的最近十个请求。
准备工作
如果您已完成本指南中前面的所有步骤,请跳过此部分。 否则,请完成以下任一操作:
从构建 Python 3 应用开始,完成这一步之前的所有步骤。
如果您已有 Google Cloud 项目,则可以下载 Web 服务的副本并添加 Firebase 继续操作:
存储和检索特定于用户的数据
您可以使用 Datastore 模式的 Firestore (Datastore) 祖先实体指示数据已连接到特定用户,从而以分层方式组织 Datastore 数据。
为此,请完成以下步骤:
更新
store_time
和fetch_time
方法,以使用 Cloud Datastore 祖先实体来存储和检索visit
实体:每个
visit
实体现在都有一个与之相连的祖先实体。这些祖先实体是 Datastore 实体,用于表示各个经过身份验证的用户。每个祖先实体的键都包含User
种类和自定义 ID,即经过身份验证的用户的电子邮件地址。使用祖先键查询数据库中仅与特定用户关联的时间。更新
store_times
方法中的root
方法调用并将其移至id_token
条件内,以便在服务器对用户进行身份验证后才使其运行:
配置索引
Datastore 基于索引进行查询。对于简单实体,Datastore 会自动生成这些索引。但它无法为较复杂的实体(包括具有祖先实体的实体)自动生成索引。
因此,您需要为 visit
实体手动创建索引,以便 Datastore 能够执行涉及 visit
实体的查询。
要为 visit
实体创建索引,请完成以下步骤:
在项目的根目录中创建
index.yaml
文件(例如building-an-app
),并添加以下索引:通过运行以下命令并按照提示在 Datastore 中部署
index.yaml
索引:gcloud datastore indexes create index.yaml
Datastore 可能需要一段时间才能创建索引。如果在将网络服务部署到 App Engine 之前创建索引,则您可以使用这些索引在本地进行测试,如果查询需要的索引仍在构建过程中,还可防止此类查询发生可能的异常。
如需详细了解如何配置 Datastore 索引,请参阅配置 Datastore 索引。
测试 Web 服务
通过在虚拟环境中本地运行 Web 服务来对其进行测试:
在项目的主目录中运行以下命令,以运行 Web 服务。 如果您尚未为本地测试设置虚拟环境,请参阅测试 Web 服务。
python main.py
在网络浏览器中输入以下地址,以查看您的 Web 服务:
http://localhost:8080
部署 Web 服务
在本地正常运行 Datastore 后,您可以将 Web 服务重新部署到 App Engine。
从 app.yaml
文件所在项目的根目录运行以下命令:
gcloud app deploy
所有流量都会自动路由到您部署的新版本。
如需详细了解如何管理版本,请参阅管理服务和版本。
查看您的服务
如需快速启动浏览器并通过 https://PROJECT_ID.REGION_ID.r.appspot.com
访问您的 Web 服务,请运行以下命令:
gcloud app browse
后续步骤
恭喜!您已成功构建网络服务,该服务使用 Datastore 数据存储和 Firebase 身份验证为经过身份验证的用户提供个性化网页。
现在,您可通过关停、禁用或停用项目的结算功能来进行清理。