כאשר אתה יוצר הרחבה, אתה כותב את ההיגיון שלו באמצעות פונקציות ענן, בערך כמו שאתה כותב פונקציה שתשמש רק בפרויקט שלך. אתה מצהיר על הפונקציות שלך בקובץ extension.yaml
, וכאשר משתמשים מתקינים את התוסף שלך, פונקציות אלה נפרסות בפרויקט שלהם.
עיין בתיעוד של Cloud Functions למידע כללי על השימוש ב-Cloud Functions.
פונקציות ענן מהדור הראשון והשני
Firebase תומך בפונקציות ענן מהדור הראשון וגם בדור השני . עם זאת, לתוספי Firebase יש כיום הגבלות מסוימות לגבי הדור של פונקציית ענן שתוכל להשתמש בסוגי טריגרים מסוימים. מסיבה זו, הרחבות רבות כוללות שילוב של פונקציות מהדור הראשון והשני.
תמיכה ביצירת פונקציות מצוינת עבור כל סוג טריגר, להלן.
שיקולים מיוחדים
הגדרות פונקציות מסוימות דורשות ממך לציין מידע שצוין גם בקובץ
extension.yaml
. לדוגמה, ל-Cloud Firestore יש שיטה שלdocument()
שמציינת את תבנית המסמך שיש לצפות בה, ולהצהרה המתאימה שלה ב-extension.yaml
יש שדהresource
שמציין את אותו הדבר.במצבים אלה, נעשה שימוש בתצורה המצוינת בקובץ
extension.yaml
ומתעלמים מהתצורה שצוינה בהגדרת הפונקציה.מקובל לציין את הערך המוגדר בהגדרת הפונקציה ללא קשר, למען התיעוד. הדוגמאות בדף זה עוקבות אחר דפוס זה.
ל-Cloud Functions SDK מהדור הראשון יש שיטה
functions.config()
ופקודתfunctions:config:set
CLI שבה אתה יכול להשתמש כדי לעבוד עם ערכים עם פרמטרים בפונקציות מהדור הראשון. טכניקה זו הוצאה משימוש ב-Cloud Functions והיא לא תעבוד כלל בהרחבה. במקום זאת, השתמש במודולfunctions.params
(מומלץ) אוprocess.env
.
באמצעות TypeScript
רוב התיעוד לפיתוח תוסף משלך מתאר זרימות עבודה באמצעות JavaScript עבור פונקציות ענן עבור Firebase. עם זאת, אתה יכול במקום זאת לכתוב את הפונקציות שלך באמצעות TypeScript.
למעשה, כל ההרחבות הרשמיות של Firebase כתובות ב-TypeScript. אתה יכול לעיין בהרחבות אלה כדי לקבל כמה שיטות עבודה מומלצות לשימוש ב-TypeScript עבור התוסף שלך.
אם אתה כן כותב את הפונקציות של התוסף שלך ב-TypeScript, עליך לבצע את הפעולות הבאות לפני התקנת התוסף שלך:
הרכיב את קוד המקור של הפונקציות של התוסף שלך ל-JavaScript.
הפקודה
firebase ext:dev:init
מאפשרת לך לבחור TypeScript לכתיבת הפונקציות שלך. הפקודה מספקת לך הרחבה מלאה וניתנת להתקנה , כמו גם סקריפט build שתוכל להריץ עםnpm run build
.בקובץ
package.json
שלך, הקפד להפנות את השדהmain
ל-JavaScript שנוצר.אם אתה מתקין או מעלה את התוסף שלך ממקור מקומי, הידור תחילה את קובצי TypeScript.
מפעילי פונקציות נתמכות
מפעילי HTTP
פונקציה מופעלת ב-HTTP נפרסת לנקודת קצה https
ציבורית ופועלת כאשר מתבצעת גישה לנקודת הקצה.
ראה פונקציות התקשרות באמצעות בקשות HTTP בתיעוד ענן פונקציות לקבלת מידע על כתיבת פונקציות המופעלות על ידי HTTP.
הגדרת פונקציה (דור ראשון בלבד)
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, אך הן מיישמות פרוטוקול שהופך אותן לנוחות להתקשרות מהקוד בצד הלקוח שלך.
ראה פונקציות שיחה מהאפליקציה שלך בתיעוד פונקציות ענן למידע על שימוש בפונקציות הניתנות להתקשרות.
הגדרת פונקציה (דור ראשון בלבד)
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: ...
הפעלת פונקציות מתוזמנות
פונקציה מתוזמנת פועלת שוב ושוב על סמך לוח זמנים הניתן להתאמה אישית.
ראה פונקציות לוח זמנים בתיעוד ענן פונקציות למידע על כתיבת פונקציות מתוזמנות.
הגדרת פונקציה (דור ראשון בלבד)
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
מפעילי תור משימות
פונקציית תור משימות מופעלת באירועי מחזור החיים של התוסף שלך או כאשר היא מתווספת ידנית לתור המשימות של התוסף שלך באמצעות שיטת TaskQueue.enqueue()
של Admin SDK של Admin SDK.
ראה טיפול באירועי מחזור החיים של התוסף שלך למידע על כתיבת פונקציות המטפלות באירועי מחזור חיים.
ראה פונקציות תור עם Cloud Tasks בתיעוד Cloud Functions לקבלת מידע על כתיבת פונקציות בתור משימות.
הגדרת פונקציה (דור ראשון בלבד)
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 שצוין נרשם ביומן.
עיין בטריגרים של Google Analytics בתיעוד של פונקציות הענן למידע על כתיבת פונקציות המופעלות על ידי Analytics.
הגדרת פונקציה (דור ראשון בלבד)
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
אימות
פונקציה המופעלת על ידי אימות פועלת כאשר משתמש נוצר או נמחק.
ראה מפעילי אימות Firebase בתיעוד של פונקציות ענן למידע על כתיבת פונקציות המופעלות על ידי אישור.
הגדרת פונקציה (דור ראשון בלבד)
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: ...
הטבלה הבאה מראה כיצד לציין כל אחד מסוגי אירועי האימות הנתמכים:
טריגר אירוע של Cloud Functions | eventType | תיאור |
---|---|---|
onCreate() | providers/firebase.auth/eventTypes/user.create | נוצר משתמש חדש |
onDelete() | providers/firebase.auth/eventTypes/user.delete | המשתמש נמחק |
Cloud Firestore
פונקציה המופעלת על ידי Cloud Firestore פועלת כאשר מסמך נוצר, מתעדכן או נמחק.
עיין בטריגרים של Cloud Firestore בתיעוד של Cloud Functions לקבלת מידע על כתיבת פונקציות שהופעלו על ידי Firestore.
הגדרת פונקציה (דור ראשון בלבד)
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 בתיעוד Cloud Functions למידע על כתיבת פונקציות מופעלות Pub/Sub.
הגדרת פונקציה (דור ראשון בלבד)
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
מסד נתונים בזמן אמת
פונקציה מופעלת בזמן אמת של מסד נתונים פועלת כאשר נתיב התואם לדפוס שצוין נוצר, מתעדכן או נמחק.
ראה מפעילים של מסד נתונים בזמן אמת בתיעוד פונקציות ענן למידע על כתיבת פונקציות המופעלות על ידי RTDB.
הגדרת פונקציה (דור ראשון בלבד)
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 כאשר תבנית הפרמטרים של הפרויקט מתעדכנת.
ראה מפעילי תצורה מרחוק בתיעוד פונקציות ענן למידע על כתיבת פונקציות המופעלות על ידי תצורה מרחוק.
הגדרת פונקציה (דור ראשון בלבד)
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 בתיעוד Cloud Functions למידע על כתיבת פונקציות המופעלות על ידי אחסון.
הגדרת פונקציה (דור ראשון בלבד)
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
מעבדת בדיקות
פונקציה המופעלת ממעבדת בדיקה פועלת כאשר מטריצת בדיקה מסיימת את הבדיקות שלה.
ראה מפעילים של Firebase Test Lab בתיעוד Cloud Functions לקבלת מידע על כתיבת פונקציות שהופעלו מ-Test Lab.
הגדרת פונקציה (דור ראשון בלבד)
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 מפרסמת התראה.
ראה מפעילי התראות Firebase בתיעוד פונקציות ענן למידע על כתיבת פונקציות שהופעלו התראות.
הגדרת פונקציה (דור שני בלבד)
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
מפעילי התראה של ניטור ביצועים
פונקציה המופעלת ניטור ביצועים פועלת כאשר ניטור ביצועים מפרסם התראה.
ראה מפעילי התראות Firebase בתיעוד פונקציות ענן למידע על כתיבת פונקציות שהופעלו התראות.
הגדרת פונקציה (דור שני בלבד)
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: ...
מופעלות התראות על הפצת אפליקציות
פונקציה מופעלת בהפצת אפליקציות פועלת כאשר הפצת אפליקציות מפרסמת התראה.
ראה מפעילי התראות Firebase בתיעוד פונקציות ענן למידע על כתיבת פונקציות שהופעלו התראות.
הגדרת פונקציה (דור שני בלבד)
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 פועלת כאשר סוג אירוע מסוים מתפרסם בערוץ ספציפי.
ראה יצירה וטיפול בטריגרים של אירועים מותאמים אישית בתיעוד Cloud Functions לקבלת מידע על כתיבת פונקציות המופעלות על ידי Eventarc.
אתה יכול גם לפרסם אירועים מהתוספים שלך כדי לתת למשתמשים דרך להכניס לוגיקה מותאמת אישית לתוך התוסף שלך. ראה שימוש בלוגיקה מותאמת אישית שסופק על ידי מפתח בתוסף .
הגדרת פונקציה (דור שני בלבד)
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: ...
הערוץ חייב להתקיים כבר כשהתוסף שלך מותקן. לדוגמה, אם אתה תלוי באירועים מותאמים אישית מתוסף אחר שיוצר את הערוץ, הנח את המשתמשים שלך להתקין את התוסף הזה תחילה.
הדוגמה שלמעלה תיצור טריגר אירוע מותאם אישית עבור ערוץ Firebase "ברירת המחדל" באזור us-central1
. אתה יכול להפוך את שם הערוץ והאזור להתאמה אישית באמצעות פרמטרים. לדוגמה:
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}