Gdy tworzysz rozszerzenie, tworzysz jego logikę za pomocą Cloud Functions:
w taki sam sposób, w jaki można by napisać funkcję, której można użyć wyłącznie
do swojego własnego projektu. W pliku extension.yaml
zadeklarujesz swoje funkcje,
gdy użytkownicy instalują Twoje rozszerzenie, te funkcje są wdrażane
w projektach AI.
Ogólne informacje o korzystaniu z usługi znajdziesz w dokumentacji Cloud Functions. Cloud Functions.
Funkcje w Cloud Functions pierwszej i drugiej generacji
Firebase obsługuje zarówno Funkcje Cloud Functions pierwszej i drugiej generacji Pamiętaj jednak, że Firebase Rozszerzenia mają obecnie pewne ograniczenia dotyczące tego, która generacja usługi Google Cloud której można używać z określonymi typami aktywatorów. Z tego powodu wiele zawierają kombinację funkcji 1 i 2 generacji.
Obsługa generowania funkcji jest podawana dla każdego typu aktywatora opisanego poniżej.
Specjalne uwagi
Niektóre definicje funkcji wymagają podania informacji, które są również określone w pliku
extension.yaml
. Na przykład Cloud Firestore madocument()
, która określa wzorzec dokumentu do obserwacji i jego odpowiednia deklaracja w funkcjiextension.yaml
ma poleresource
, które określa to samo.W takich sytuacjach konfiguracja określona w
extension.yaml
jest używany plik, a konfiguracja określona w definicji funkcji to zignorowano.Powszechną praktyką jest podawanie skonfigurowanego wartości w funkcji niezależnie od jego definicji, ze względu na dokumentację. Przykłady są zgodne z tym wzorcem.
Pakiet SDK Cloud Functions 1 generacji zawiera metodę
functions.config()
oraz Polecenie interfejsu wiersza poleceńfunctions:config:set
, którego można używać w pracy wartości z parametrami w funkcjach 1 generacji. Ta metoda została wycofana w Cloud Functions i w ogóle nie będą działać w rozszerzeniu. Zamiast tego użyj modułfunctions.params
(zalecany) lubprocess.env
.
Korzystanie z TypeScript
Większość dokumentacji dotyczącej tworzenia własnych rozszerzeń opisuje przepływy pracy za pomocą JavaScriptu na potrzeby Cloud Functions dla Firebase. Możesz jednak zamiast tego napisać za pomocą TypeScriptu.
Wszystkie oficjalne rozszerzenia Firebase są napisane w języku TypeScript. Możesz je sprawdzić pod kątem metod korzystania z TypeScriptu w rozszerzeniu.
Jeśli wpiszesz funkcje rozszerzenia w TypeScript, musisz wpisać wykonaj te czynności:
Skompiluj kod źródłowy funkcji rozszerzenia do JavaScriptu.
firebase ext:dev:init
pozwala wybrać skrypt TypeScript do pisania funkcji. Polecenie zawiera kompletne rozszerzenie, które można zainstalować, oraz kompilację skrypt, który możesz uruchomić przy pomocynpm run build
.W pliku
package.json
umieść polemain
w sekcji JavaScript.Jeśli instalujesz lub przesyłasz rozszerzenie ze źródła lokalnego, najpierw skompiluj pliki TypeScript.
Aktywatory obsługiwanych funkcji
Aktywatory HTTP
Funkcja wyzwalana przez HTTP jest wdrażana w publicznym punkcie końcowym https
i jest uruchamiana
po uzyskaniu dostępu do punktu końcowego.
Zapoznaj się z sekcją poświęconą wywoływaniu funkcji za pomocą żądań HTTP w Cloud Functions. dokumentacji z informacjami o tworzeniu funkcji wyzwalanych przez HTTP.
Definicja funkcji (tylko 1 generacji)
import { https } from "firebase-functions/v1";
export const yourFunctionName = https.onRequest(async (req, resp) => {
// ...
});
Deklaracja zasobu (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
runtime: nodejs16
httpsTrigger: {}
- name: anotherFunction
type: ...
Funkcje wywoływane
Funkcje wywoływalne są podobne do funkcji wywoływanych przez HTTP, ale implementują funkcję dzięki któremu można wygodnie wykonywać połączenia z poziomu kodu po stronie klienta.
Zapoznaj się z sekcją Wywoływanie funkcji z aplikacji w dokumentacji Cloud Functions. .
Definicja funkcji (tylko 1 generacji)
import { https } from "firebase-functions/v1";
export const yourFunctionName = https.onCall(async (data, context) => {
// ...
});
Deklaracja zasobu (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
runtime: nodejs16
httpsTrigger: {}
- name: anotherFunction
type: ...
Aktywatory zaplanowanej funkcji
Zaplanowana funkcja jest uruchamiana wielokrotnie na podstawie konfigurowalnego harmonogramu.
Zapoznaj się z artykułem Planowanie funkcji w dokumentacji Cloud Functions dla tych tematów: informacje na temat pisania zaplanowanych funkcji.
Definicja funkcji (tylko 1 generacji)
import { pubsub } from "firebase-functions/v1";
export const yourFunctionName = pubsub.schedule("every 6 hours").onRun((context) => {
// ...
});
Deklaracja zasobu (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
scheduleTrigger:
schedule: 'every 5 minutes'
- name: anotherFunction
type: ...
Oto dostępne pola podrzędne dla pola scheduleTrigger
:
Pole | Opis |
---|---|
schedule (wymagane) |
Częstotliwość uruchamiania funkcji. To pole może akceptować ciągi tekstowe, które korzystają z dowolnej składni (zawijania pojedynczy cudzysłów:
|
timeZone (opcjonalnie) |
Strefa czasowa, w której będzie uruchamiany harmonogram.
|
Jeśli chcesz, aby użytkownicy mogli skonfigurować harmonogram
dodaj do pliku extension.yaml
nowy parametr i uwzględnij odwołanie do
w deklaracji funkcji 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
Aktywatory kolejki zadań
Funkcja kolejki zadań jest wyzwalana w cyklu życia rozszerzenia
zdarzeń lub gdy zostały ręcznie dodane do kolejki zadań rozszerzenia na karcie Administracja
Metoda TaskQueue.enqueue()
w pakiecie SDK.
Informacje o zapisie znajdziesz w artykule Obsługa zdarzeń cyklu życia rozszerzenia. które obsługują zdarzenia cyklu życia.
Zobacz Umieszczanie funkcji w kolejce za pomocą Cloud Tasks w Cloud Functions dokumentacji z informacjami na temat pisania funkcji kolejek zadań.
Definicja funkcji (tylko 1 generacji)
import { tasks } from "firebase-functions/v1";
export const yourFunctionName = tasks.taskQueue().onDispatch(async (data, context) => {
// ...
});
Deklaracja zasobu (extension.yaml)
resources:
- name: myTaskFunction
type: firebaseextensions.v1beta.function
description: >-
Perform a task when triggered by a lifecycle event
properties:
taskQueueTrigger: {}
Ustaw właściwość taskQueueTrigger
na {}
lub mapę opcji, która
dostrajać limity szybkości i ponawiać próby w kolejce zadań (patrz Dostrajanie zadania
kolejka).
Jeśli chcesz aktywować swoją funkcję przez zdarzenia cyklu życia rozszerzenia, dodaj
lifecycleEvents
rekordy z nazwą funkcji i opcjonalnym parametrem
Przetwarzam wiadomość, która będzie wyświetlana w konsoli Firebase,
gdy rozpocznie się przetwarzanie.
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
Funkcja wyzwalana przez Analytics jest uruchamiana po wystąpieniu określonego zdarzenia Analytics zapisane.
Zapoznaj się z sekcją Aktywatory Google Analytics w dokumentacji Cloud Functions dla: jak pisać funkcje wywoływane przez Analytics.
Definicja funkcji (tylko 1 generacji)
import { analytics } from "firebase-functions/v1";
export const yourFunctionName = analytics.event("event_name").onLog((event, context) => {
// ...
});
Deklaracja zasobu (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: ...
Jeśli chcesz, aby użytkownicy mogli skonfigurować zdarzenie Analytics, które nasłuchuje
gdy zainstalują Twoje rozszerzenie, dodaj do extension.yaml
nowy parametr
i odwoływać się do niego w deklaracji resource
funkcji:
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
Uwierzytelnianie
Funkcja wyzwalana przez uwierzytelnianie jest uruchamiana podczas tworzenia lub usuwania użytkownika.
Zobacz aktywatory uwierzytelniania Firebase w Cloud Functions. dokumentacji z informacjami na temat tworzenia funkcji wyzwalanych przez uwierzytelnianie.
Definicja funkcji (tylko 1 generacji)
import { auth } from "firebase-functions/v1";
export const yourFunctionName = auth.user().onCreate((user, context) => {
// ...
});
export const yourFunctionName2 = auth.user().onDelete((user, context) => {
// ...
});
Deklaracja zasobu (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: ...
W tabeli poniżej pokazujemy, jak określić każde obsługiwane zdarzenie uwierzytelniania. typy:
Aktywator zdarzeń Cloud Functions | eventType |
Opis |
---|---|---|
onCreate() |
providers/firebase.auth/eventTypes/user.create |
Utworzono nowego użytkownika |
onDelete() |
providers/firebase.auth/eventTypes/user.delete |
Użytkownik został usunięty |
Cloud Firestore
Funkcja wyzwalana przez Cloud Firestore jest uruchamiana, gdy dokument jest tworzony, aktualizowany lub usunięte.
W dokumentacji Cloud Functions znajdziesz aktywatory Cloud Firestore dotyczące informacje na temat zapisywania funkcji wyzwalanych przez Firestore.
Definicja funkcji (tylko 1 generacji)
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.
// ...
});
Deklaracja zasobu (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: ...
W tabeli poniżej pokazujemy, jak określić każdą z obsługiwanych usług Cloud Firestore typy zdarzeń:
Aktywator zdarzeń Cloud Functions | eventType |
Opis |
---|---|---|
onCreate() |
providers/cloud.firestore/eventTypes/document.create |
Utworzono nowy dokument |
onDelete() |
providers/cloud.firestore/eventTypes/document.delete |
Dokument został usunięty |
onUpdate() |
providers/cloud.firestore/eventTypes/document.update |
Dokument został zaktualizowany |
onWrite() |
providers/cloud.firestore/eventTypes/document.write |
Dokument został utworzony, usunięty lub zaktualizowany |
Jeśli chcesz, aby użytkownicy mogli konfigurować ścieżkę dokumentu podczas instalacji
rozszerzenia, dodaj nowy parametr do pliku extension.yaml
i odwołania
parametr w deklaracji funkcji 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
Funkcja wyzwalana przez Pub/Sub jest uruchamiana po opublikowaniu wiadomości w określonym miejscu temat.
W dokumentacji Cloud Functions znajdziesz aktywatory Pub/Sub jak pisać funkcje wyzwalane przez Pub/Sub.
Definicja funkcji (tylko 1 generacji)
import { pubsub } from "firebase-functions/v1";
export const yourFunctionName = pubsub.topic("topic_name").onPublish((message, context) => {
// ...
});
Deklaracja zasobu (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: ...
Jeśli chcesz, aby użytkownicy mogli konfigurować temat Pub/Sub, gdy:
zainstaluje Twoje rozszerzenie, dodaj nowy parametr do pliku extension.yaml
i odwołuj się do parametru w deklaracji funkcji 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
Baza danych czasu rzeczywistego
Funkcja wyzwalana przez Bazę danych czasu rzeczywistego jest uruchamiana, gdy ścieżka pasuje do określonej gdy zostanie utworzony, zaktualizowany lub usunięty.
Zapoznaj się z sekcją Aktywatory bazy danych czasu rzeczywistego w dokumentacji Cloud Functions. .
Definicja funkcji (tylko 1 generacji)
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.
// ...
});
Deklaracja zasobu (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: ...
W tabeli poniżej pokazujemy, jak określić każdą z obsługiwanych usług Cloud Firestore typy zdarzeń:
Aktywator zdarzeń Cloud Functions | eventType |
Opis |
---|---|---|
onCreate() |
providers/google.firebase.database/eventTypes/ref.create |
Dane zostały utworzone |
onDelete() |
providers/google.firebase.database/eventTypes/ref.delete |
Dane zostały usunięte |
onUpdate() |
providers/google.firebase.database/eventTypes/ref.update |
Dane zostały zaktualizowane |
onWrite() |
providers/google.firebase.database/eventTypes/ref.write |
Dane utworzone, usunięte lub zaktualizowane |
Jeśli chcesz, aby użytkownicy mogli konfigurować ścieżkę do obserwowania podczas instalacji
rozszerzenia, dodaj nowy parametr do pliku extension.yaml
i odwołania
parametr w deklaracji funkcji 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
Zdalna konfiguracja
Funkcja wyzwalana przez Zdalną konfigurację jest uruchamiana, gdy szablon parametrów projektu jest Zaktualizowano.
Zapoznaj się z sekcją Aktywatory Zdalnej konfiguracji w dokumentacji Cloud Functions dla: znajdziesz w nim informacje o pisaniu funkcji wyzwalanych przez Zdalną konfigurację.
Definicja funkcji (tylko 1 generacji)
import { remoteConfig } from "firebase-functions/v1";
export const yourFunctionName = remoteConfig.onUpdate((version, context) => {
// ...
});
Deklaracja zasobu (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
Funkcja wyzwalana przez Cloud Storage jest uruchamiana podczas tworzenia, zarchiwizowania lub archiwizacji obiektu lub gdy zmienią się jego metadane.
Zapoznaj się z sekcją Aktywatory Cloud Storage w dokumentacji Cloud Functions dla: jak pisać funkcje aktywowane przez Cloud Storage.
Definicja funkcji (tylko 1 generacji)
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) => {
// ...
});
Deklaracja zasobu (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: ...
W tabeli poniżej pokazujemy, jak określić każdą z obsługiwanych usług Cloud Storage typy zdarzeń:
Aktywator zdarzeń Cloud Functions | eventType |
Opis |
---|---|---|
onFinalize() |
google.storage.object.finalize |
Obiekt został utworzony |
onMetadataUpdate() |
google.storage.object.metadataUpdate |
Metadane obiektu zostały zaktualizowane |
onArchive() |
google.storage.object.archive |
Obiekt został zarchiwizowany |
onDelete() |
google.storage.object.delete |
Obiekt został usunięty |
Jeśli chcesz, aby użytkownicy mogli konfigurować zasobnik na dane podczas instalacji
rozszerzenia, dodaj nowy parametr do pliku extension.yaml
i odwołania
parametr w deklaracji funkcji 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
Funkcja wyzwalana przez Laboratorium jest uruchamiana, gdy tablica testów zakończy testy.
Zobacz aktywatory Laboratorium Firebase w dokumentacji Cloud Functions. .
Definicja funkcji (tylko 1 generacji)
import { testLab } from "firebase-functions/v1";
export const yourFunctionName = testLab.testMatrix().onComplete((matrix, context) => {
// ...
});
Deklaracja zasobu (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: ...
Aktywatory alertów Crashlytics
Funkcja uruchamiana przez Crashlytics jest uruchamiana, gdy Crashlytics publikuje alert.
Zapoznaj się z aktywatorami alertów Firebase w dokumentacji Cloud Functions dla: na temat tworzenia funkcji wywoływanych przez alerty.
Definicja funkcji (tylko 2 generacji)
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) => {
// ...
});
Deklaracja zasobu (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: ...
Możesz użyć tych wartości w polu alerttype
crashlytics.newFatalIssue
crashlytics.newNonfatalIssue
crashlytics.regression
crashlytics.stabilityDigest
crashlytics.velocity
crashlytics.newAnrIssue
Aktywatory alertów monitorowania wydajności
Funkcja wyzwalana przez monitorowanie wydajności jest uruchamiana po opublikowaniu alertu przez usługę monitorowania wydajności.
Zapoznaj się z aktywatorami alertów Firebase w dokumentacji Cloud Functions dla: na temat tworzenia funkcji wywoływanych przez alerty.
Definicja funkcji (tylko 2 generacji)
import { onThresholdAlertPublished } from "firebase-functions/v2/alerts/performance";
export const yourFunctionName = onThresholdAlertPublished((event) => {
// ...
});
Deklaracja zasobu (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: ...
Aktywatory alertów typu Rozpowszechnianie aplikacji
Funkcja wyzwalana przez Rozpowszechnianie aplikacji jest uruchamiana po opublikowaniu alertu w Rozpowszechnianiu aplikacji.
Zapoznaj się z aktywatorami alertów Firebase w dokumentacji Cloud Functions dla: na temat tworzenia funkcji wywoływanych przez alerty.
Definicja funkcji (tylko 2 generacji)
import {
onNewTesterIosDevicePublished,
onInAppFeedbackPublished
} from "firebase-functions/v2/alerts/appDistribution";
export const yourFunctionName = onNewTesterIosDevicePublished((event) => {
// ...
});
export const yourFunctionName2 = onInAppFeedbackPublished((event) => {
// ...
});
Deklaracja zasobu (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: ...
Możesz użyć tych wartości w polu alerttype
appDistribution.newTesterIosDevice
appDistribution.inAppFeedback
Reguły zdarzeń niestandardowych (Eventarc)
Funkcja wyzwalana przez Eventarc jest uruchamiana po opublikowaniu określonego typu zdarzenia w do konkretnego kanału.
Zapoznaj się z sekcją poświęconą tworzeniu i obsłudze aktywatorów zdarzeń niestandardowych w Cloud Functions. dokumentacji z informacjami o tworzeniu funkcji aktywowanych przez Eventarc.
Możesz też publikować zdarzenia z rozszerzeń, aby umożliwić użytkownikom wstawianie treści w Twoje rozszerzenie. Patrz: Korzystanie z niestandardowej logiki dostarczonej przez dewelopera w .
Definicja funkcji (tylko 2 generacji)
import { onCustomEventPublished } from "firebase-functions/v2/eventarc";
export const yourFunctionName = onCustomEventPublished((event) => {
// ...
});
Deklaracja zasobu (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: ...
Kanał musi już istnieć w chwili zainstalowania rozszerzenia. Na przykład, jeśli polegasz na zdarzeniach niestandardowych z innego rozszerzenia, które tworzy kanał, poinstruuj użytkowników, aby najpierw zainstalowali to rozszerzenie.
W przykładzie powyżej możemy utworzyć regułę zdarzenia niestandardowego dla zdarzenia „default” Firebase
kanał w regionie us-central1
. Możesz podać nazwę kanału i region
można dostosować za pomocą parametrów. Przykład:
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}