Khi tạo một tiện ích mở rộng, bạn viết logic của tiện ích đó bằng cách sử dụng Hàm đám mây, giống như cách bạn viết một hàm mà trước đây chỉ được sử dụng trong dự án của riêng bạn. Bạn khai báo các hàm của mình trong tệp extension.yaml
và khi người dùng cài đặt tiện ích mở rộng của bạn, các hàm này sẽ được triển khai vào dự án của họ.
Xem tài liệu về Chức năng đám mây để biết thông tin chung về cách sử dụng Chức năng đám mây.
Chức năng đám mây thế hệ thứ 1 và thứ 2
Firebase hỗ trợ cả Chức năng đám mây thế hệ 1 và thế hệ 2 . Tuy nhiên, Tiện ích mở rộng Firebase hiện có một số hạn chế về thế hệ chức năng đám mây mà bạn có thể sử dụng với một số loại trình kích hoạt nhất định. Vì lý do này, nhiều tiện ích mở rộng bao gồm sự kết hợp của các chức năng thế hệ thứ 1 và thứ 2.
Hỗ trợ tạo chức năng được ghi chú cho từng loại trình kích hoạt bên dưới.
Những cân nhắc đặc biệt
Một số định nghĩa hàm yêu cầu bạn chỉ định thông tin cũng được chỉ định trong tệp
extension.yaml
. Ví dụ: Cloud Firestore có phương thứcdocument()
chỉ định mẫu tài liệu cần xem và khai báo tương ứng của nó trong tiện íchextension.yaml
có trườngresource
chỉ định tương tự.Trong những trường hợp này, cấu hình được chỉ định trong tệp
extension.yaml
được sử dụng và cấu hình được chỉ định trong định nghĩa hàm sẽ bị bỏ qua.Thực tế thông thường là chỉ định giá trị được cấu hình trong định nghĩa hàm bất kể vì mục đích tài liệu. Các ví dụ trên trang này tuân theo mẫu này.
SDK thế hệ 1 của Cloud Functions có phương thức
functions.config()
và lệnhfunctions:config:set
CLI mà bạn có thể sử dụng để làm việc với các giá trị được tham số hóa trong các hàm thế hệ 1. Kỹ thuật này không được dùng nữa trong Cloud Functions và hoàn toàn không hoạt động trong tiện ích mở rộng. Thay vào đó, hãy sử dụng mô-đunfunctions.params
(được khuyến nghị) hoặcprocess.env
.
Sử dụng TypeScript
Hầu hết tài liệu để phát triển tiện ích mở rộng của riêng bạn đều mô tả quy trình công việc bằng cách sử dụng JavaScript cho Chức năng đám mây cho Firebase. Tuy nhiên, thay vào đó bạn có thể viết các hàm của mình bằng TypeScript.
Trên thực tế, tất cả các tiện ích mở rộng chính thức của Firebase đều được viết bằng TypeScript. Bạn có thể xem lại các tiện ích mở rộng đó để biết một số phương pháp hay nhất để sử dụng TypeScript cho tiện ích mở rộng của mình.
Nếu bạn viết các chức năng của tiện ích mở rộng trong TypeScript, bạn phải thực hiện các bước sau trước khi cài đặt tiện ích mở rộng của mình:
Biên dịch mã nguồn chức năng của tiện ích mở rộng của bạn sang JavaScript.
Lệnh
firebase ext:dev:init
cho phép bạn chọn TypeScript để viết các hàm của mình. Lệnh này cung cấp cho bạn một tiện ích mở rộng hoàn chỉnh, có thể cài đặt cũng như tập lệnh xây dựng mà bạn có thể chạy vớinpm run build
.Trong tệp
package.json
của bạn, hãy đảm bảo trỏ trườngmain
vào JavaScript được tạo.Nếu bạn đang cài đặt hoặc tải lên tiện ích mở rộng của mình từ nguồn cục bộ, trước tiên hãy biên dịch các tệp TypeScript của bạn.
Trình kích hoạt chức năng được hỗ trợ
Trình kích hoạt HTTP
Hàm kích hoạt HTTP được triển khai tới điểm cuối https
công khai và chạy khi điểm cuối được truy cập.
Xem Gọi các hàm thông qua yêu cầu HTTP trong tài liệu về Hàm đám mây để biết thông tin về cách viết các hàm được kích hoạt HTTP.
Định nghĩa hàm (chỉ thế hệ 1)
import { https } from "firebase-functions/v1";
export const yourFunctionName = https.onRequest(async (req, resp) => {
// ...
});
Khai báo tài nguyên (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
runtime: nodejs16
httpsTrigger: {}
- name: anotherFunction
type: ...
Các hàm có thể gọi được
Các hàm có thể gọi tương tự như các hàm được kích hoạt HTTP nhưng chúng triển khai một giao thức giúp việc gọi từ mã phía máy khách của bạn trở nên thuận tiện.
Xem Chức năng gọi từ ứng dụng của bạn trong tài liệu Chức năng đám mây để biết thông tin về cách sử dụng các chức năng có thể gọi.
Định nghĩa hàm (chỉ thế hệ 1)
import { https } from "firebase-functions/v1";
export const yourFunctionName = https.onCall(async (data, context) => {
// ...
});
Khai báo tài nguyên (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
runtime: nodejs16
httpsTrigger: {}
- name: anotherFunction
type: ...
Trình kích hoạt chức năng theo lịch trình
Chức năng được lên lịch chạy lặp đi lặp lại dựa trên lịch trình có thể tùy chỉnh.
Xem Chức năng lập lịch trong tài liệu Chức năng đám mây để biết thông tin về cách viết các chức năng được lập lịch.
Định nghĩa hàm (chỉ thế hệ 1)
import { pubsub } from "firebase-functions/v1";
export const yourFunctionName = pubsub.schedule("every 6 hours").onRun((context) => {
// ...
});
Khai báo tài nguyên (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
scheduleTrigger:
schedule: 'every 5 minutes'
- name: anotherFunction
type: ...
Dưới đây là các trường con có sẵn cho scheduleTrigger
:
Cánh đồng | Sự miêu tả |
---|---|
schedule (yêu cầu) | Tần suất mà bạn muốn chức năng này chạy. Trường này có thể chấp nhận các chuỗi sử dụng một trong hai cú pháp (bắt buộc phải gói trong dấu ngoặc đơn ):
|
timeZone (không bắt buộc) | Múi giờ mà lịch trình sẽ chạy.
|
Nếu bạn muốn người dùng có thể định cấu hình lịch khi họ cài đặt tiện ích mở rộng của bạn, hãy thêm tham số mới vào tệp extension.yaml
và tham chiếu tham số đó trong phần khai báo resource
của hàm:
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
Trình kích hoạt hàng đợi tác vụ
Chức năng hàng đợi tác vụ được kích hoạt trong các sự kiện trong vòng đời của tiện ích mở rộng của bạn hoặc khi được thêm thủ công vào hàng đợi tác vụ của tiện ích mở rộng bằng phương thức TaskQueue.enqueue()
của SDK quản trị.
Xem Xử lý các sự kiện trong vòng đời của tiện ích mở rộng của bạn để biết thông tin về cách viết các hàm xử lý các sự kiện trong vòng đời.
Xem các hàm Enqueue với Nhiệm vụ trên đám mây trong tài liệu về Hàm đám mây để biết thông tin về cách viết các hàm xếp hàng nhiệm vụ.
Định nghĩa hàm (chỉ thế hệ 1)
import { tasks } from "firebase-functions/v1";
export const yourFunctionName = tasks.taskQueue().onDispatch(async (data, context) => {
// ...
});
Khai báo tài nguyên (extension.yaml)
resources:
- name: myTaskFunction
type: firebaseextensions.v1beta.function
description: >-
Perform a task when triggered by a lifecycle event
properties:
taskQueueTrigger: {}
Đặt thuộc tính taskQueueTrigger
được đặt thành {}
hoặc bản đồ các tùy chọn điều chỉnh giới hạn tốc độ và thử lại hành vi của hàng đợi tác vụ (xem Điều chỉnh hàng đợi tác vụ ).
Nếu bạn muốn kích hoạt hàm của mình trên các sự kiện trong vòng đời của tiện ích, hãy thêm bản ghi lifecycleEvents
với tên của hàm và thông báo xử lý tùy chọn. Thông báo này sẽ được hiển thị trong bảng điều khiển Firebase khi quá trình xử lý bắt đầu.
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
phân tích
Hàm do Analytics kích hoạt sẽ chạy khi một sự kiện Analytics được chỉ định được ghi lại.
Xem trình kích hoạt Google Analytics trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm do Analytics kích hoạt.
Định nghĩa hàm (chỉ thế hệ 1)
import { analytics } from "firebase-functions/v1";
export const yourFunctionName = analytics.event("event_name").onLog((event, context) => {
// ...
});
Khai báo tài nguyên (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: ...
Nếu bạn muốn người dùng có thể định cấu hình sự kiện Analytics để theo dõi khi họ cài đặt tiện ích mở rộng của bạn, hãy thêm tham số mới vào tệp extension.yaml
và tham chiếu tham số đó trong phần khai báo resource
của hàm:
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
Xác thực
Chức năng kích hoạt xác thực sẽ chạy khi người dùng được tạo hoặc xóa.
Xem Trình kích hoạt xác thực Firebase trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm kích hoạt xác thực.
Định nghĩa hàm (chỉ thế hệ 1)
import { auth } from "firebase-functions/v1";
export const yourFunctionName = auth.user().onCreate((user, context) => {
// ...
});
export const yourFunctionName2 = auth.user().onDelete((user, context) => {
// ...
});
Khai báo tài nguyên (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: ...
Bảng sau đây cho biết cách chỉ định từng loại sự kiện Xác thực được hỗ trợ:
Trình kích hoạt sự kiện Cloud Function | eventType | Sự miêu tả |
---|---|---|
onCreate() | providers/firebase.auth/eventTypes/user.create | Người dùng mới được tạo |
onDelete() | providers/firebase.auth/eventTypes/user.delete | Người dùng đã xóa |
Cửa hàng đám mây
Chức năng được kích hoạt bởi Cloud Firestore sẽ chạy khi tài liệu được tạo, cập nhật hoặc xóa.
Xem trình kích hoạt Cloud Firestore trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm được kích hoạt Firestore.
Định nghĩa hàm (chỉ thế hệ 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.
// ...
});
Khai báo tài nguyên (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: ...
Bảng sau đây cho biết cách chỉ định từng loại sự kiện Cloud Firestore được hỗ trợ:
Trình kích hoạt sự kiện Cloud Function | eventType | Sự miêu tả |
---|---|---|
onCreate() | providers/cloud.firestore/eventTypes/document.create | Đã tạo tài liệu mới |
onDelete() | providers/cloud.firestore/eventTypes/document.delete | Đã xóa tài liệu |
onUpdate() | providers/cloud.firestore/eventTypes/document.update | Đã cập nhật tài liệu |
onWrite() | providers/cloud.firestore/eventTypes/document.write | Tài liệu được tạo, xóa hoặc cập nhật |
Nếu bạn muốn người dùng có thể định cấu hình đường dẫn tài liệu khi họ cài đặt tiện ích mở rộng của bạn, hãy thêm tham số mới vào tệp extension.yaml
và tham chiếu tham số đó trong phần khai báo resource
của hàm:
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
Quán rượu/Phụ
Chức năng Pub/Sub-kích hoạt chạy khi tin nhắn được xuất bản lên một chủ đề cụ thể.
Xem trình kích hoạt Pub/Sub trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm kích hoạt Pub/Sub.
Định nghĩa hàm (chỉ thế hệ 1)
import { pubsub } from "firebase-functions/v1";
export const yourFunctionName = pubsub.topic("topic_name").onPublish((message, context) => {
// ...
});
Khai báo tài nguyên (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: ...
Nếu bạn muốn người dùng có thể định cấu hình chủ đề Pub/Sub khi họ cài đặt tiện ích mở rộng của bạn, hãy thêm tham số mới vào tệp extension.yaml
và tham chiếu tham số đó trong phần khai báo resource
của hàm:
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
Cơ sở dữ liệu thời gian thực
Hàm kích hoạt Cơ sở dữ liệu thời gian thực chạy khi đường dẫn khớp với mẫu đã chỉ định được tạo, cập nhật hoặc xóa.
Xem Trình kích hoạt cơ sở dữ liệu thời gian thực trong tài liệu Chức năng đám mây để biết thông tin về cách ghi các hàm kích hoạt RTDB.
Định nghĩa hàm (chỉ thế hệ 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.
// ...
});
Khai báo tài nguyên (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: ...
Bảng sau đây cho biết cách chỉ định từng loại sự kiện Cloud Firestore được hỗ trợ:
Trình kích hoạt sự kiện Cloud Function | eventType | Sự miêu tả |
---|---|---|
onCreate() | providers/google.firebase.database/eventTypes/ref.create | Dữ liệu được tạo |
onDelete() | providers/google.firebase.database/eventTypes/ref.delete | Đã xóa dữ liệu |
onUpdate() | providers/google.firebase.database/eventTypes/ref.update | Đã cập nhật dữ liệu |
onWrite() | providers/google.firebase.database/eventTypes/ref.write | Dữ liệu được tạo, xóa hoặc cập nhật |
Nếu bạn muốn người dùng có thể định cấu hình đường dẫn để xem khi họ cài đặt tiện ích mở rộng của bạn, hãy thêm tham số mới vào tệp extension.yaml
và tham chiếu tham số đó trong phần khai báo resource
của hàm:
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
Cấu hình từ xa
Chức năng kích hoạt Cấu hình từ xa chạy khi mẫu tham số của dự án được cập nhật.
Xem Trình kích hoạt cấu hình từ xa trong tài liệu Chức năng đám mây để biết thông tin về cách ghi các hàm kích hoạt Cấu hình từ xa.
Định nghĩa hàm (chỉ thế hệ 1)
import { remoteConfig } from "firebase-functions/v1";
export const yourFunctionName = remoteConfig.onUpdate((version, context) => {
// ...
});
Khai báo tài nguyên (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
eventTrigger:
eventType: google.firebase.remoteconfig.update
resource: projects/${PROJECT_ID}
- name: anotherFunction
type: ...
Lưu trữ đám mây
Hàm được kích hoạt bởi Cloud Storage sẽ chạy khi một đối tượng được tạo, lưu trữ hoặc xóa hoặc khi siêu dữ liệu của đối tượng đó thay đổi.
Xem Trình kích hoạt lưu trữ đám mây trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm kích hoạt lưu trữ.
Định nghĩa hàm (chỉ thế hệ 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) => {
// ...
});
Khai báo tài nguyên (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: ...
Bảng sau đây cho biết cách chỉ định từng loại sự kiện Cloud Storage được hỗ trợ:
Trình kích hoạt sự kiện Cloud Function | eventType | Sự miêu tả |
---|---|---|
onFinalize() | google.storage.object.finalize | Đối tượng được tạo |
onMetadataUpdate() | google.storage.object.metadataUpdate | Đã cập nhật siêu dữ liệu đối tượng |
onArchive() | google.storage.object.archive | Đối tượng đã được lưu trữ |
onDelete() | google.storage.object.delete | Đối tượng đã bị xóa |
Nếu bạn muốn người dùng có thể định cấu hình bộ nhớ lưu trữ khi họ cài đặt tiện ích mở rộng của bạn, hãy thêm tham số mới vào tệp extension.yaml
và tham chiếu tham số đó trong phần khai báo resource
của hàm:
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
Phòng thử nghiệm
Chức năng do Test Lab kích hoạt sẽ chạy khi ma trận thử nghiệm hoàn thành các thử nghiệm của nó.
Xem trình kích hoạt Phòng thí nghiệm kiểm tra Firebase trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm do Phòng thí nghiệm kiểm tra kích hoạt.
Định nghĩa hàm (chỉ thế hệ 1)
import { testLab } from "firebase-functions/v1";
export const yourFunctionName = testLab.testMatrix().onComplete((matrix, context) => {
// ...
});
Khai báo tài nguyên (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: ...
Trình kích hoạt cảnh báo Crashlytics
Hàm do Crashlytics kích hoạt sẽ chạy khi Crashlytics xuất bản cảnh báo.
Xem trình kích hoạt Cảnh báo Firebase trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm kích hoạt cảnh báo.
Định nghĩa hàm (chỉ thế hệ 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) => {
// ...
});
Khai báo tài nguyên (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: ...
Bạn có thể sử dụng các giá trị sau cho alerttype
-
crashlytics.newFatalIssue
-
crashlytics.newNonfatalIssue
-
crashlytics.regression
-
crashlytics.stabilityDigest
-
crashlytics.velocity
-
crashlytics.newAnrIssue
Trình kích hoạt cảnh báo Giám sát hiệu suất
Chức năng được kích hoạt Giám sát hiệu suất sẽ chạy khi Giám sát hiệu suất xuất bản cảnh báo.
Xem trình kích hoạt Cảnh báo Firebase trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm kích hoạt cảnh báo.
Định nghĩa hàm (chỉ thế hệ 2)
import { onThresholdAlertPublished } from "firebase-functions/v2/alerts/performance";
export const yourFunctionName = onThresholdAlertPublished((event) => {
// ...
});
Khai báo tài nguyên (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: ...
Trình kích hoạt cảnh báo phân phối ứng dụng
Chức năng kích hoạt Phân phối ứng dụng sẽ chạy khi Phân phối ứng dụng xuất bản cảnh báo.
Xem trình kích hoạt Cảnh báo Firebase trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm kích hoạt cảnh báo.
Định nghĩa hàm (chỉ thế hệ 2)
import {
onNewTesterIosDevicePublished,
onInAppFeedbackPublished
} from "firebase-functions/v2/alerts/appDistribution";
export const yourFunctionName = onNewTesterIosDevicePublished((event) => {
// ...
});
export const yourFunctionName2 = onInAppFeedbackPublished((event) => {
// ...
});
Khai báo tài nguyên (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: ...
Bạn có thể sử dụng các giá trị sau cho alerttype
-
appDistribution.newTesterIosDevice
-
appDistribution.inAppFeedback
Trình kích hoạt sự kiện tùy chỉnh (Eventarc)
Hàm được kích hoạt Eventarc chạy khi một loại sự kiện cụ thể được xuất bản lên một kênh cụ thể.
Xem Tạo và xử lý trình kích hoạt sự kiện tùy chỉnh trong tài liệu Chức năng đám mây để biết thông tin về cách viết các hàm kích hoạt Eventarc.
Bạn cũng có thể xuất bản các sự kiện từ tiện ích mở rộng của mình để cung cấp cho người dùng cách chèn logic tùy chỉnh vào tiện ích mở rộng của bạn. Xem Sử dụng logic tùy chỉnh do nhà phát triển cung cấp trong tiện ích mở rộng .
Định nghĩa hàm (chỉ thế hệ 2)
import { onCustomEventPublished } from "firebase-functions/v2/eventarc";
export const yourFunctionName = onCustomEventPublished((event) => {
// ...
});
Khai báo tài nguyên (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: ...
Kênh phải tồn tại khi tiện ích mở rộng của bạn được cài đặt. Ví dụ: nếu bạn phụ thuộc vào các sự kiện tùy chỉnh từ một tiện ích mở rộng khác tạo kênh, trước tiên hãy hướng dẫn người dùng cài đặt tiện ích mở rộng đó.
Ví dụ trên sẽ tạo trình kích hoạt sự kiện tùy chỉnh cho kênh Firebase "mặc định" trong khu vực us-central1
. Bạn có thể tùy chỉnh tên kênh và vùng bằng cách sử dụng các tham số. Ví dụ:
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}