建立擴充功能時,您會使用 Cloud Functions 編寫其邏輯,這與編寫只會在您專案中使用的函式非常相似。您可以在 extension.yaml
檔案中宣告函式,當使用者安裝擴充功能時,這些函式就會部署至他們的專案。
如要瞭解使用 Cloud Functions 的一般資訊,請參閱 Cloud Functions 說明文件。
第 1 代和第 2 代 Cloud Functions
Firebase 支援第 1 代和第 2 代 Cloud Functions。不過,Firebase 擴充功能目前對可與特定觸發條件類型搭配使用的雲端函式世代有一定的限制。因此,許多擴充功能都會同時包含第 1 代和第 2 代函式。
下列各觸發條件類型不支援函式產生功能。
特殊注意事項
部分函式定義需要您指定
extension.yaml
檔案中也指定的資訊。舉例來說,Cloud Firestore 的document()
方法會指定要監控的文件模式,而其extension.yaml
中的相應宣告具有指定相同的resource
欄位。在這種情況下,系統會使用
extension.yaml
檔案中指定的設定,並忽略函式定義中指定的設定。為了方便說明,通常會在函式定義中指定已設定的值。本頁的範例遵循此模式。
Cloud Functions 第 1 代 SDK 提供
functions.config()
方法和functions:config:set
CLI 指令,可用於處理第 1 代函式中的參數化值。這項技巧已在 Cloud Functions 中淘汰,在擴充功能中完全無法運作。請改用functions.params
模組 (建議) 或process.env
。
使用 TypeScript
大部分的說明文件 (用於開發您自己的擴充功能) 都會說明使用 JavaScript 的 Cloud Functions for Firebase 工作流程。不過,您可以改用 TypeScript 編寫函式。
事實上,所有官方 Firebase 擴充功能都是以 TypeScript 編寫。您可以查看這些擴充功能,瞭解在擴充功能中使用 TypeScript 的最佳做法。
如果您確實使用 TypeScript 編寫擴充功能的函式,請務必在安裝擴充功能前執行下列操作:
將擴充功能的函式原始碼編譯為 JavaScript。
您可以使用
firebase ext:dev:init
指令選擇 TypeScript 來編寫函式。這個指令會提供完整且可安裝的擴充功能,以及可使用npm run build
執行的建構指令碼。在
package.json
檔案中,請務必將main
欄位指向產生的 JavaScript。如要從本機來源安裝或上傳擴充功能,請先編譯 TypeScript 檔案。
支援的函式觸發事件
HTTP 觸發條件
以 HTTP 觸發的函式會部署至公開的 https
端點,並在端點存取時執行。
如要瞭解如何編寫 HTTP 觸發函式,請參閱 Cloud Functions 說明文件中的「透過 HTTP 要求呼叫函式」。
函式定義 (僅限第 1 代)
import { https } from "firebase-functions/v1";
export const yourFunctionName = https.onRequest(async (req, resp) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
runtime: nodejs16
httpsTrigger: {}
- name: anotherFunction
type: ...
可呼叫的函式
可叫用函式與 HTTP 觸發函式類似,但實作了可從用戶端程式碼輕鬆呼叫的通訊協定。
如要瞭解如何使用可呼叫函式,請參閱 Cloud Functions 說明文件中的「從應用程式呼叫函式」。
函式定義 (僅限第 1 代)
import { https } from "firebase-functions/v1";
export const yourFunctionName = https.onCall(async (data, context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
runtime: nodejs16
httpsTrigger: {}
- name: anotherFunction
type: ...
排定的函式觸發條件
排定函式會根據可自訂的時間表重複執行。
如要瞭解如何編寫排程函式,請參閱 Cloud Functions 說明文件中的「排程函式」。
函式定義 (僅限第 1 代)
import { pubsub } from "firebase-functions/v1";
export const yourFunctionName = pubsub.schedule("every 6 hours").onRun((context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
scheduleTrigger:
schedule: 'every 5 minutes'
- name: anotherFunction
type: ...
以下是 scheduleTrigger
的可用子欄位:
欄位 | 說明 |
---|---|
schedule (必要) |
您希望函式執行的頻率。 這個欄位可接受使用任一語法的字串 (必須以單引號括住):
|
timeZone (選填) |
排程執行的時區。
|
如果您希望使用者在安裝擴充功能時能夠設定時間表,請在 extension.yaml
檔案中新增參數,並在函式的 resource
宣告中參照該參數:
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
scheduleTrigger:
schedule: ${SCHEDULE_FREQUENCY}
- name: anotherFunction
type: ...
params:
- param: SCHEDULE_FREQUENCY
label: Schedule
description: How often do you want to run yourFunctionName()?
type: string
default: 'every 5 minutes' # Specifying a default is optional.
required: true
工作佇列觸發條件
工作佇列函式會在擴充功能的生命週期事件中觸發,或是在使用管理員 SDK 的 TaskQueue.enqueue()
方法手動將其新增至擴充功能的工作佇列時觸發。
如要瞭解如何編寫處理生命週期事件的函式,請參閱「處理擴充功能的生命週期事件」。
如要瞭解如何編寫工作佇列函式,請參閱 Cloud Functions 說明文件中的「使用 Cloud Tasks 將函式加入佇列」。
函式定義 (僅限第 1 代)
import { tasks } from "firebase-functions/v1";
export const yourFunctionName = tasks.taskQueue().onDispatch(async (data, context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: myTaskFunction
type: firebaseextensions.v1beta.function
description: >-
Perform a task when triggered by a lifecycle event
properties:
taskQueueTrigger: {}
將 taskQueueTrigger
屬性集設為 {}
,或用於調整工作佇列的速率限制和重試行為的選項對應項目 (請參閱「調整工作佇列」)。
如果您想在擴充功能的生命週期事件中觸發函式,請新增 lifecycleEvents
記錄,其中包含函式名稱和選用的處理訊息,這些資訊會在處理開始時顯示在 Firebase 主控台中。
lifecycleEvents:
onInstall:
function: myTaskFunction
processingMessage: Resizing your existing images
onUpdate:
function: myOtherTaskFunction
processingMessage: Setting up your extension
onConfigure:
function: myOtherTaskFunction
processingMessage: Setting up your extension
Analytics
當記錄指定 Analytics 事件時,Analytics 觸發的函式就會執行。
如要瞭解如何編寫 Analytics 觸發函式,請參閱 Cloud Functions 說明文件中的「Google Analytics 觸發事件」。
函式定義 (僅限第 1 代)
import { analytics } from "firebase-functions/v1";
export const yourFunctionName = analytics.event("event_name").onLog((event, context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: providers/google.firebase.analytics/eventTypes/event.log
resource: projects/${PROJECT_ID}/events/ga_event
- name: anotherFunction
type: ...
如果您希望使用者在安裝擴充功能時,能夠設定 Analytics 事件來監聽,請在 extension.yaml
檔案中新增參數,並在函式的 resource
宣告中參照該參數:
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: providers/google.firebase.analytics/eventTypes/event.log
resource: projects/${PROJECT_ID}/events/${EVENT_NAME}
- name: anotherFunction
type: ...
params:
- param: EVENT_NAME
label: Analytics event
description: What event do you want to respond to?
type: string
default: ga_event # Specifying a default is optional.
required: true
Authentication
建立或刪除使用者時,就會執行驗證觸發函式。
如要瞭解如何編寫由驗證觸發的函式,請參閱 Cloud Functions 說明文件中的「Firebase 驗證觸發事件」。
函式定義 (僅限第 1 代)
import { auth } from "firebase-functions/v1";
export const yourFunctionName = auth.user().onCreate((user, context) => {
// ...
});
export const yourFunctionName2 = auth.user().onDelete((user, context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: providers/firebase.auth/eventTypes/user.create
resource: projects/${PROJECT_ID}
- name: anotherFunction
type: ...
下表說明如何指定每個支援的 Authentication 事件類型:
Cloud Functions 事件觸發條件 | eventType |
說明 |
---|---|---|
onCreate() |
providers/firebase.auth/eventTypes/user.create |
已建立新使用者 |
onDelete() |
providers/firebase.auth/eventTypes/user.delete |
已刪除使用者 |
Cloud Firestore
建立、更新或刪除文件時,Cloud Firestore 觸發的函式就會執行。
如要瞭解如何編寫 Firestore 觸發函式,請參閱 Cloud Functions 說明文件中的「Cloud Firestore 觸發條件」。
函式定義 (僅限第 1 代)
import { firestore } from "firebase-functions/v1";
export const yourFunctionName = firestore.document("collection/{doc_id}")
.onCreate((snapshot, context) => {
// ...
});
export const yourFunctionName2 = firestore.document("collection/{doc_id}")
.onUpdate((change, context) => {
// ...
});
export const yourFunctionName3 = firestore.document("collection/{doc_id}")
.onDelete((snapshot, context) => {
// ...
});
export const yourFunctionName4 = firestore.document("collection/{doc_id}")
.onWrite((change, context) => {
// onWrite triggers on creation, update, and deletion.
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: providers/cloud.firestore/eventTypes/document.write
resource: projects/${PROJECT_ID}/databases/(default)/documents/collection/{documentID}
- name: anotherFunction
type: ...
下表說明如何指定每個支援的 Cloud Firestore 事件類型:
Cloud Functions 個事件觸發條件 | eventType |
說明 |
---|---|---|
onCreate() |
providers/cloud.firestore/eventTypes/document.create |
已建立新文件 |
onDelete() |
providers/cloud.firestore/eventTypes/document.delete |
已刪除文件 |
onUpdate() |
providers/cloud.firestore/eventTypes/document.update |
已更新文件 |
onWrite() |
providers/cloud.firestore/eventTypes/document.write |
建立、刪除或更新文件 |
如果您希望使用者在安裝擴充功能時能夠設定文件路徑,請在 extension.yaml
檔案中新增參數,並在函式的 resource
宣告中參照該參數:
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: providers/cloud.firestore/eventTypes/document.write
resource: projects/${PROJECT_ID}/databases/(default)/documents/${YOUR_DOCUMENT_PATH}
- name: anotherFunction
type: ...
params:
- param: YOUR_DOCUMENT_PATH
label: Cloud Firestore path
description: Where do you want to watch for changes?
type: string
default: path/to/{documentID} # Specifying a default is optional.
required: true
Pub/Sub
將訊息發布至特定主題時,就會執行 Pub/Sub 觸發函式。
如要瞭解如何編寫由 Pub/Sub 觸發的函式,請參閱 Cloud Functions 文件中的「Pub/Sub 觸發事件」。
函式定義 (僅限第 1 代)
import { pubsub } from "firebase-functions/v1";
export const yourFunctionName = pubsub.topic("topic_name").onPublish((message, context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: google.pubsub.topic.publish
resource: projects/${PROJECT_ID}/topics/topic-name
- name: anotherFunction
type: ...
如果您希望使用者在安裝擴充功能時能夠設定 Pub/Sub 主題,請在 extension.yaml
檔案中新增參數,並在函式的 resource
宣告中參照該參數:
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: google.pubsub.topic.publish
resource: projects/${PROJECT_ID}/topics/${PUBSUB_TOPIC}
- name: anotherFunction
type: ...
params:
- param: PUBSUB_TOPIC
label: Pub/Sub topic
description: Which Pub/Sub topic do you want to watch for messages?
type: string
default: topic-name # Specifying a default is optional.
required: true
Realtime Database
當系統建立、更新或刪除符合指定模式的路徑時,即時資料庫觸發的函式就會執行。
如要瞭解如何編寫 RTDB 觸發函式,請參閱 Cloud Functions 說明文件中的「Realtime Database 觸發事件」。
函式定義 (僅限第 1 代)
import { database } from "firebase-functions/v1";
export const yourFunctionName = database.ref("path/to/{item}")
.onCreate((snapshot, context) => {
// ...
});
export const yourFunctionName2 = database.ref("path/to/{item}")
.onUpdate((change, context) => {
// ...
});
export const yourFunctionName3 = database.ref("path/to/{item}")
.onDelete((snapshot, context) => {
// ...
});
export const yourFunctionName4 = database.ref("path/to/{item}")
.onWrite((change, context) => {
// onWrite triggers on creation, update, and deletion.
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: providers/google.firebase.database/eventTypes/ref.create
# DATABASE_INSTANCE (project's default instance) is an auto-populated
# parameter value. You can also specify an instance.
resource: projects/_/instances/${DATABASE_INSTANCE}/refs/path/to/{itemId}
- name: anotherFunction
type: ...
下表說明如何指定每個支援的 Cloud Firestore 事件類型:
Cloud Functions 個事件觸發條件 | eventType |
說明 |
---|---|---|
onCreate() |
providers/google.firebase.database/eventTypes/ref.create |
已建立的資料 |
onDelete() |
providers/google.firebase.database/eventTypes/ref.delete |
已刪除資料 |
onUpdate() |
providers/google.firebase.database/eventTypes/ref.update |
資料已更新 |
onWrite() |
providers/google.firebase.database/eventTypes/ref.write |
建立、刪除或更新的資料 |
如果您希望使用者在安裝擴充功能時能夠設定要監控的路徑,請在 extension.yaml
檔案中新增參數,並在函式的 resource
宣告中參照該參數:
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: providers/google.firebase.database/eventTypes/ref.create
# DATABASE_INSTANCE (project's default instance) is an auto-populated
# parameter value. You can also specify an instance.
resource: projects/_/instances/${DATABASE_INSTANCE}/refs/${DB_PATH}
- name: anotherFunction
type: ...
params:
- param: DB_PATH
label: Realtime Database path
description: Where do you want to watch for changes?
type: string
default: path/to/{itemId} # Specifying a default is optional.
required: true
Remote Config
當專案的參數範本更新時,就會執行遠端設定觸發函式。
如要瞭解如何編寫由遠端設定觸發的函式,請參閱 Cloud Functions 說明文件中的「遠端設定觸發事件」。
函式定義 (僅限第 1 代)
import { remoteConfig } from "firebase-functions/v1";
export const yourFunctionName = remoteConfig.onUpdate((version, context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: google.firebase.remoteconfig.update
resource: projects/${PROJECT_ID}
- name: anotherFunction
type: ...
Cloud Storage
建立、封存或刪除物件,或物件中繼資料變更時,Cloud Storage 觸發的函式就會執行。
如要瞭解如何編寫 Storage 觸發函式,請參閱 Cloud Functions 說明文件中的 Cloud Storage 觸發條件。
函式定義 (僅限第 1 代)
import { storage } from "firebase-functions/v1";
export const yourFunctionName = storage.object().onFinalize((object, context) => {
// ...
});
export const yourFunctionName2 = storage.object().onMetadataUpdate((object, context) => {
// ...
});
export const yourFunctionName3 = storage.object().onArchive((object, context) => {
// ...
});
export const yourFunctionName4 = storage.object().onDelete((object, context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: google.storage.object.finalize
# STORAGE_BUCKET (project's default bucket) is an auto-populated
# parameter. You can also specify a bucket.
resource: projects/_/buckets/${STORAGE_BUCKET}
- name: anotherFunction
type: ...
下表說明如何指定每個支援的 Cloud Storage 事件類型:
Cloud Functions 事件觸發條件 | eventType |
說明 |
---|---|---|
onFinalize() |
google.storage.object.finalize |
已建立物件 |
onMetadataUpdate() |
google.storage.object.metadataUpdate |
物件中繼資料已更新 |
onArchive() |
google.storage.object.archive |
物件已封存 |
onDelete() |
google.storage.object.delete |
物件已刪除 |
如果您希望使用者在安裝擴充功能時能夠設定儲存值區,請在 extension.yaml
檔案中新增參數,並在函式的 resource
宣告中參照該參數:
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: google.storage.object.finalize
resource: projects/_/buckets/${YOUR_BUCKET}
- name: anotherFunction
type: ...
params:
- param: YOUR_BUCKET
label: Cloud Storage bucket
description: Which bucket do you want to watch for changes?
type: selectResource
resourceType: storage.googleapis.com/Bucket
default: ${STORAGE_BUCKET} # Specifying a default is optional.
required: true
Test Lab
當測試矩陣完成測試時,Test Lab 觸發的函式就會執行。
如要瞭解如何編寫 Test Lab 觸發函式,請參閱 Cloud Functions 說明文件中的「Firebase Test Lab 觸發事件」。
函式定義 (僅限第 1 代)
import { testLab } from "firebase-functions/v1";
export const yourFunctionName = testLab.testMatrix().onComplete((matrix, context) => {
// ...
});
資源宣告 (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: google.testing.testMatrix.complete
resource: projects/${PROJECT_ID}/testMatrices/{matrixId}
- name: anotherFunction
type: ...
Crashlytics 則快訊觸發條件
當 Crashlytics 發布快訊時,就會執行 Crashlytics 觸發的函式。
如要瞭解如何編寫快訊觸發的函式,請參閱 Cloud Functions 說明文件中的「Firebase 快訊觸發條件」。
函式定義 (僅限第 2 代)
import {
onNewFatalIssuePublished,
onNewNonfatalIssuePublished,
onNewAnrIssuePublished,
onRegressionAlertPublished,
onVelocityAlertPublished,
onStabilityDigestPublished,
} from "firebase-functions/v2/alerts/crashlytics";
export const yourFunctionName = onNewFatalIssuePublished((event) => {
// ...
});
export const yourFunctionName2 = onNewNonfatalIssuePublished((event) => {
// ...
});
export const yourFunctionName3 = onNewAnrIssuePublished((event) => {
// ...
});
export const yourFunctionName4 = onRegressionAlertPublished((event) => {
// ...
});
export const yourFunctionName5 = onVelocityAlertPublished((event) => {
// ...
});
export const yourFunctionName6 = onStabilityDigestPublished((event) => {
// ...
});
資源宣告 (extension.yaml)
apis:
- apiName: eventarc.googleapis.com
reason: Powers all events and triggers
- apiName: run.googleapis.com
reason: Powers 2nd-gen functions
resources:
- name: yourfunctionname
type: firebaseextensions.v1beta.v2function
properties:
buildConfig:
runtime: nodejs16
serviceConfig:
availableMemory: 512M
eventTrigger:
eventType: google.firebase.firebasealerts.alerts.v1.published
triggerRegion: global
eventFilters:
- attribute: alerttype
value: crashlytics.newFatalIssue
- name: anotherFunction
type: ...
您可以使用下列值為 alerttype
crashlytics.newFatalIssue
crashlytics.newNonfatalIssue
crashlytics.regression
crashlytics.stabilityDigest
crashlytics.velocity
crashlytics.newAnrIssue
Performance Monitoring 警示觸發條件
Performance Monitoring 發布快訊時,Performance Monitoring 觸發的函式就會執行。
如要瞭解如何編寫快訊觸發函式,請參閱 Cloud Functions 說明文件中的「Firebase 快訊觸發事件」。
函式定義 (僅限第 2 代)
import { onThresholdAlertPublished } from "firebase-functions/v2/alerts/performance";
export const yourFunctionName = onThresholdAlertPublished((event) => {
// ...
});
資源宣告 (extension.yaml)
apis:
- apiName: eventarc.googleapis.com
reason: Powers all events and triggers
- apiName: run.googleapis.com
reason: Powers 2nd-gen functions
resources:
- name: yourfunctionname
type: firebaseextensions.v1beta.v2function
properties:
buildConfig:
runtime: nodejs16
serviceConfig:
availableMemory: 512M
eventTrigger:
eventType: google.firebase.firebasealerts.alerts.v1.published
triggerRegion: global
eventFilters:
- attribute: alerttype
value: performance.threshold
- name: anotherFunction
type: ...
App Distribution 則快訊觸發條件
App Distribution 發布快訊時,App Distribution 觸發的函式就會執行。
如要瞭解如何編寫快訊觸發函式,請參閱 Cloud Functions 說明文件中的「Firebase 快訊觸發事件」。
函式定義 (僅限第 2 代)
import {
onNewTesterIosDevicePublished,
onInAppFeedbackPublished
} from "firebase-functions/v2/alerts/appDistribution";
export const yourFunctionName = onNewTesterIosDevicePublished((event) => {
// ...
});
export const yourFunctionName2 = onInAppFeedbackPublished((event) => {
// ...
});
資源宣告 (extension.yaml)
apis:
- apiName: eventarc.googleapis.com
reason: Powers all events and triggers
- apiName: run.googleapis.com
reason: Powers 2nd-gen functions
resources:
- name: yourfunctionname
type: firebaseextensions.v1beta.v2function
properties:
buildConfig:
runtime: nodejs16
serviceConfig:
availableMemory: 512M
eventTrigger:
eventType: google.firebase.firebasealerts.alerts.v1.published
triggerRegion: global
eventFilters:
- attribute: alerttype
value: appDistribution.inAppFeedback
- name: anotherFunction
type: ...
您可以使用下列值為 alerttype
appDistribution.newTesterIosDevice
appDistribution.inAppFeedback
自訂事件觸發條件 (Eventarc)
當特定事件類型發布至特定管道時,Eventarc 觸發的函式就會執行。
如要瞭解如何編寫 Eventarc 觸發函式,請參閱 Cloud Functions 說明文件中的「建立及處理自訂事件觸發條件」。
您也可以從擴充功能中發布事件,讓使用者能夠在擴充功能中插入自訂邏輯。請參閱「在擴充功能中使用開發人員提供的自訂邏輯」。
函式定義 (僅限第 2 代)
import { onCustomEventPublished } from "firebase-functions/v2/eventarc";
export const yourFunctionName = onCustomEventPublished((event) => {
// ...
});
資源宣告 (extension.yaml)
apis:
- apiName: eventarc.googleapis.com
reason: Powers all events and triggers
- apiName: run.googleapis.com
reason: Powers 2nd-gen functions
resources:
- name: yourfunctionname
type: firebaseextensions.v1beta.v2function
properties:
# LOCATION is a user-configured parameter value specified by the user
# during installation.
location: ${param:LOCATION}
buildConfig:
runtime: nodejs16
serviceConfig:
availableMemory: 512M
timeoutSeconds: 60
eventTrigger:
eventType: firebase.extensions.storage-resize-images.v1.complete
channel: projects/${param:PROJECT_ID}/locations/us-central1/channels/firebase
- name: anotherFunction
type: ...
安裝擴充功能時,管道必須已存在。舉例來說,如果您需要建立管道的其他擴充功能提供的自訂事件,請先指示使用者安裝該擴充功能。
上述範例會為 us-central1
地區的「default」Firebase 管道建立自訂事件觸發條件。您可以使用參數讓頻道名稱和地區可自訂。例如:
params:
- param: EVENTARC_CHANNEL_NAME
label: Eventarc channel name
description: What is the name of the Eventarc channel.
default: firebase
type: string
required: true
resources:
- name: yourfunctionname
type: firebaseextensions.v1beta.v2function
properties:
location: ${param:LOCATION}
eventTrigger:
eventType: firebase.extensions.storage-resize-images.v1.complete
channel: projects/${param:PROJECT_ID}/locations/${param:LOCATION}/channels/${param:EVENTARC_CHANNEL_NAME}