EventContext interface

事件发生的上下文。

EventContext 描述: - 事件发生的时间。- 事件的唯一标识符。- 发生事件的资源(如果适用)。- 对触发事件的请求的授权(如果适用且可用)。

签名

export interface EventContext<Params = Record<string, string>> 

属性

属性 类型 说明
身份验证 { token: object;uid:字符串;} 触发函数的用户的身份验证信息。
authType “管理”|“USER”|“UNAUTHENTICATED” 用户的权限级别。
eventId 字符串 事件的唯一标识符。
eventType 字符串 事件类型。
参数 参数 一个对象,其中包含 path 参数中的通配符值,该参数提供给 Realtime Database 触发器的方法。
resource 资源 发出事件的资源。
时间戳 字符串 事件的时间戳,以 RFC 3339 字符串表示。

EventContext.auth

触发函数的用户的身份验证信息。

此对象包含经过身份验证的用户的 uidtoken 属性。如需了解详情(包括令牌密钥),请参阅安全规则参考文档

只有 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;