接口:Request

属性

auth

rules.Map

请求身份验证上下文。

  • uid - 发出请求的用户的 UID。
  • token - JWT 令牌声明的映射。

token 映射包含以下值:


字段 说明
“email” 与账号关联的电子邮件地址(如果存在)。
“email_verified” 如果用户已验证他们有权访问该电子邮件,则为“true” 地址。
“phone_number” 与账号关联的电话号码(如果有)。
`名称` 用户的显示名(如果已设置)。
“sub” 用户的 Firebase UID。此 UID 在项目中是唯一的。
“firebase.identities” 与此用户账号关联的所有身份的映射。 映射的键可以是以下任何一项:`email`、`phone`、 `google.com`、`facebook.com`、`github.com`、`twitter.com`。 地图中每个身份的唯一标识符的列表 与账号关联的提供商相关联。例如: `request.auth.token.firebase.identities["google.com"][0]` 包含 与账号关联的第一个 Google 用户 ID。
“firebase.sign_in_provider” 用于获取此令牌的登录服务提供方。可以是 以下字符串:`custom`、`password`、`phone`、`anonymous`、 `google.com`、`facebook.com`、`github.com`、`twitter.com`。
“firebase.tenant” 与账号关联的租户 ID(如果存在)。例如“tenant2-m6tyz”

method

非 null rules.String

请求方法。以下之一:

  • get
  • list
  • create
  • update
  • delete

路径

非 null rules.Path

受影响资源的路径。

查询

非 null rules.Map

查询属性的映射(如果存在)。

  • limit - 查询限制子句。
  • offset - 查询偏移子句。
  • orderBy - 查询 orderBy 子句。

示例

// Limit documents per request to 50
allow list: if request.query.limit <= 50

资源

非 null rules.firestore.Resource

新资源值,仅在写入请求时存在。

时间

非 null rules.Timestamp

服务收到请求的时间。

对于包含服务器端时间戳的 Firestore 写入操作: 此时间将等于服务器时间戳。

示例

// Make sure that 'myServerTimestampField' was set using a
// server-side timestamp.
request.time == request.resource.data.myServerTimestampField