事件发生的上下文。
EventContext 描述: - 事件发生的时间。- 事件的唯一标识符。- 发生事件的资源(如果适用)。- 对触发事件的请求的授权(如果适用且可用)。
签名:
export interface EventContext<Params = Record<string, string>>
属性
属性 | 类型 | 说明 |
---|---|---|
身份验证 | { token: object;uid:字符串;} | 触发函数的用户的身份验证信息。 |
authType | “管理”|“USER”|“UNAUTHENTICATED” | 用户的权限级别。 |
eventId | 字符串 | 事件的唯一标识符。 |
eventType | 字符串 | 事件类型。 |
参数 | 参数 | 一个对象,其中包含 path 参数中的通配符值,该参数提供给 Realtime Database 触发器的方法。 |
resource | 资源 | 发出事件的资源。 |
时间戳 | 字符串 | 事件的时间戳,以 RFC 3339 字符串表示。 |
EventContext.auth
触发函数的用户的身份验证信息。
此对象包含经过身份验证的用户的 uid
和 token
属性。如需了解详情(包括令牌密钥),请参阅安全规则参考文档。
只有 Realtime Database 触发器和 Callable 函数才会填充此字段。对于未经身份验证的用户,此字段为 null。对于不提供用户信息的 Firebase 管理员用户和事件类型,此字段不存在。
签名:
auth?: {
token: object;
uid: string;
};
EventContext.authType
用户的权限级别。
有效值包括:
ADMIN
:通过服务账号进行身份验证的开发者用户或用户。USER
:已知用户。UNAUTHENTICATED
:未经身份验证的操作null
:适用于不提供用户信息的事件类型(除了 Realtime Database 以外)。
签名:
authType?: "ADMIN" | "USER" | "UNAUTHENTICATED";
EventContext.eventId
事件的唯一标识符。
签名:
eventId: string;
EventContext.eventType
事件类型。
可能的值包括:
google.analytics.event.log
google.firebase.auth.user.create
google.firebase.auth.user.delete
google.firebase.database.ref.write
google.firebase.database.ref.create
google.firebase.database.ref.update
google.firebase.database.ref.delete
google.firestore.document.write
google.firestore.document.create
google.firestore.document.update
google.firestore.document.delete
google.pubsub.topic.publish
google.firebase.remoteconfig.update
google.storage.object.finalize
google.storage.object.archive
google.storage.object.delete
google.storage.object.metadataUpdate
google.testing.testMatrix.complete
签名:
eventType: string;
EventContext.params
一个对象,其中包含 path
参数中的通配符值,该参数提供给 Realtime Database 触发器的方法。
签名:
params: Params;
EventContext.resource
发出事件的资源。
有效值包括:
Google Analytics:projects/<projectId>/events/<analyticsEventType>
Realtime Database:projects/_/instances/<databaseInstance>/refs/<databasePath>
存储空间:projects/_/buckets/<bucketName>/objects/<fileName>#<generation>
身份验证:projects/<projectId>
Pub/Sub:projects/<projectId>/topics/<topicName>
由于 Realtime Database 实例和 Cloud Storage 存储分区具有全局唯一性,并且与项目无关,因此它们的资源以 projects/_
开头。下划线不是有效的项目名称。
签名:
resource: Resource;
EventContext.timestamp
事件的时间戳,以 RFC 3339 字符串表示。
签名:
timestamp: string;