EventContext interface

事件發生時的情境,

EventContext 說明:- 事件發生的時間。- 事件的專屬識別碼。- 發生事件的資源 (如適用)。- 授權觸發事件的要求 (如果有的話)。

簽名:

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

屬性

屬性 類型 說明
驗證 { 符記:物件;uid:字串;} 觸發函式的使用者驗證資訊。
驗證類型 「管理員」|「USER」|「已取消」 使用者的權限等級。
eventId 字串 事件的專屬 ID。
eventType 字串 事件類型。
參數 參數 這是一個物件,其中包含提供給即時資料庫觸發條件的方法 path 參數中的萬用字元值。
資源 資源 產生事件的資源。
時間戳記 字串 事件時間戳記,以 RFC 3339 字串表示。

EventContext.auth

觸發函式的使用者驗證資訊。

這個物件包含已驗證使用者的 uidtoken 屬性。如需權杖金鑰等詳細資訊,請參閱安全性規則參考資料

只有即時資料庫觸發條件和可呼叫函式才會填入這個欄位。如果是未經驗證的使用者,這個欄位為空值。對於未提供使用者資訊的 Firebase 管理員使用者和事件類型,這個欄位不存在。

簽名:

auth?: {
        token: object;
        uid: string;
    };

EventContext.authType

使用者的權限等級。

以下為有效值:

  • ADMIN:透過服務帳戶驗證的開發人員使用者或使用者。

  • USER:已知使用者。

  • UNAUTHENTICATED:未經驗證的動作

  • null:適用於不提供使用者資訊的事件類型 (即時資料庫除外)。

簽名:

authType?: "ADMIN" | "USER" | "UNAUTHENTICATED";

EventContext.eventId

事件的專屬 ID。

簽名:

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 參數中的萬用字元值。

簽名:

params: Params;

EventContext.resource

產生事件的資源。

以下為有效值:

Analytics:projects/<projectId>/events/<analyticsEventType>

即時資料庫:projects/_/instances/<databaseInstance>/refs/<databasePath>

儲存空間:projects/_/buckets/<bucketName>/objects/<fileName>#<generation>

驗證:projects/<projectId>

Pub/Sub:projects/<projectId>/topics/<topicName>

由於即時資料庫執行個體和 Cloud Storage 值區在全域範圍內都不會重複,且不連結至專案,因此其資源開頭為 projects/_。底線並非有效的專案名稱。

簽名:

resource: Resource;

EventContext.timestamp

事件時間戳記,以 RFC 3339 字串表示。

簽名:

timestamp: string;