接口:请求

特性

授权

规则.地图

请求身份验证上下文。

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

token映射包含以下值:


场地描述
`电子邮件`与帐户关联的电子邮件地址(如果存在)。
`电子邮件已验证`如果用户已验证他们有权访问“电子邮件”地址,则为“true”。
`电话号码`与帐户关联的电话号码(如果存在)。
`名字`用户的显示名称(如果已设置)。
`子`用户的 Firebase 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.租户`与帐户关联的tenantId(如果存在)。例如`tenant2-m6tyz`

方法

非空规则.String

请求方法。之一:

  • get
  • list
  • create
  • update
  • delete

小路

非空规则.Path

受影响资源的路径。

询问

非空规则.Map

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

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

例子

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

资源

非空rules.firestore.Resource

新的资源值仅在写入请求时出现。

时间

非空规则.时间戳

当服务收到请求时。

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

例子

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