Wenn Sie eine Erweiterung erstellen, schreiben Sie ihre Logik mit Cloud Functions in
so wie Sie eine Funktion schreiben würden, die nur in
für Ihr eigenes Projekt erstellen. Sie deklarieren Ihre Funktionen in der Datei extension.yaml
. Wenn Nutzer Ihre Erweiterung installieren, werden diese Funktionen in ihrem Projekt bereitgestellt.
Allgemeine Informationen zur Verwendung finden Sie in der Dokumentation zu Cloud Functions Cloud Functions.
Cloud Functions (1. und 2. Generation)
Firebase unterstützt sowohl Cloud Functions der 1. als auch der 2. Generation. Bei Firebase-Erweiterungen gibt es jedoch derzeit einige Einschränkungen bei der Generation der Cloud-Funktion, die Sie mit bestimmten Triggertypen verwenden können. Aus diesem Grund Erweiterungen enthalten eine Mischung aus Funktionen der 1. und 2. Generation.
Die Unterstützung der Funktionsgenerierung ist für jeden Triggertyp unten angegeben.
Besondere Überlegungen
Bei einigen Funktionsdefinitionen müssen Informationen angegeben werden, die auch in der Datei
extension.yaml
angegeben. Cloud Firestore hat beispielsweisedocument()
-Methode, die das zu beobachtende Dokumentmuster und dessen die entsprechende Deklaration inextension.yaml
das Feldresource
enthält, das gibt dasselbe an.In diesen Fällen wird die in der Datei
extension.yaml
angegebene Konfiguration verwendet und die in der Funktionsdefinition angegebene Konfiguration wird ignoriert.Es ist jedoch üblich, den konfigurierten Wert in der Funktionsdefinition anzugeben, um die Dokumentation zu vervollständigen. Die Beispiele zu diesem Thema Seite diesem Muster folgen.
Das Cloud Functions SDK der 1. Generation hat eine
functions.config()
-Methode undfunctions:config:set
-Befehlszeilenbefehl, mit dem Sie arbeiten können in 1st gen-Funktionen parametrisiert. Dieses Verfahren wurde eingestellt in Cloud Functions und funktioniert in einer Erweiterung überhaupt nicht. Verwenden Sie stattdessen das Modulfunctions.params
(empfohlen) oderprocess.env
.
TypeScript verwenden
Der größte Teil der Dokumentation zum Entwickeln eigener Erweiterungen beschreibt Workflows mit JavaScript für Cloud Functions for Firebase. Sie können jedoch auch Ihre Funktionen mithilfe von TypeScript.
Alle offizielle Firebase-Erweiterungen sind in TypeScript verfasst. Diese Erweiterungen finden Sie Best Practices für die Verwendung von TypeScript für Ihre Erweiterung.
Wenn Sie die Funktionen Ihrer Erweiterung in TypeScript schreiben, müssen Sie bevor Sie die Erweiterung installieren:
Kompilieren Sie den Quellcode der Funktionen Ihrer Erweiterung in JavaScript.
Die
firebase ext:dev:init
Befehl können Sie TypeScript zum Schreiben Ihrer Funktionen verwenden. Der Befehl bietet Ihnen eine vollständige, installierbare Erweiterung sowie einen Build Skript, das Sie mitnpm run build
ausführen können.Achten Sie darauf, dass das Feld
main
in der Dateipackage.json
auf die generiertem JavaScript-Code.Wenn Sie Ihre Erweiterung aus einer lokalen Quelle installieren oder hochladen, müssen Sie zuerst Ihre TypeScript-Dateien kompilieren.
Unterstützte Funktionstrigger
HTTP-Trigger
Eine durch HTTP ausgelöste Funktion wird auf einem öffentlichen https
-Endpunkt bereitgestellt und ausgeführt
wenn auf den Endpunkt zugegriffen wird.
Siehe Aufruffunktionen über HTTP-Anfragen in der Cloud Functions Dokumentation zum Schreiben von durch HTTP ausgelösten Funktionen.
Funktionsdefinition (nur 1. Generation)
import { https } from "firebase-functions/v1";
export const yourFunctionName = https.onRequest(async (req, resp) => {
// ...
});
Ressourcendeklaration (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
runtime: nodejs16
httpsTrigger: {}
- name: anotherFunction
type: ...
Aufrufbare Funktionen
Aufrufbare Funktionen ähneln durch HTTP ausgelösten Funktionen, implementieren jedoch ein -Protokoll, mit dem sie bequem über Ihren clientseitigen Code aufgerufen werden können.
Weitere Informationen finden Sie unter Funktionen aus Ihrer App aufrufen in der Cloud Functions-Dokumentation. finden Sie weitere Informationen zur Verwendung aufrufbarer Funktionen.
Funktionsdefinition (nur 1. Generation)
import { https } from "firebase-functions/v1";
export const yourFunctionName = https.onCall(async (data, context) => {
// ...
});
Ressourcendeklaration (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
runtime: nodejs16
httpsTrigger: {}
- name: anotherFunction
type: ...
Geplante Funktionstrigger
Eine geplante Funktion wird basierend auf einem anpassbaren Zeitplan wiederholt ausgeführt.
Weitere Informationen finden Sie in der Cloud Functions-Dokumentation unter Funktionen planen. zum Schreiben geplanter Funktionen.
Funktionsdefinition (nur 1. Generation)
import { pubsub } from "firebase-functions/v1";
export const yourFunctionName = pubsub.schedule("every 6 hours").onRun((context) => {
// ...
});
Ressourcendeklaration (extension.yaml)
resources:
- name: yourFunctionName
type: firebaseextensions.v1beta.function
properties:
scheduleTrigger:
schedule: 'every 5 minutes'
- name: anotherFunction
type: ...
Dies sind die verfügbaren Unterfelder für scheduleTrigger
:
Feld | Beschreibung |
---|---|
schedule (erforderlich) |
Die Häufigkeit, mit der die Funktion ausgeführt werden soll. In diesem Feld sind Strings mit beiden Syntaxen zulässig (einfache Anführungszeichen sind erforderlich):
|
timeZone (optional) |
Die Zeitzone, in der der Zeitplan ausgeführt wird.
|
Wenn Sie möchten, dass Nutzer den Zeitplan bei der Installation
Erweiterung hinzu, fügen Sie einen neuen Parameter zu Ihrer extension.yaml
-Datei hinzu und verweisen Sie auf den
-Parameter in der resource
-Deklaration der Funktion:
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
Trigger für Aufgabenwarteschlangen
Eine Task-Warteschlangenfunktion wird entweder bei den Lebenszyklusereignissen Ihrer Erweiterung oder dann ausgelöst, wenn sie der Task-Warteschlange Ihrer Erweiterung manuell mit der TaskQueue.enqueue()
-Methode des Admin SDK hinzugefügt wird.
Informationen zum Erstellen von Funktionen, die Lebenszyklusereignisse verarbeiten, finden Sie unter Lifecycle-Ereignisse Ihrer Erweiterung verarbeiten.
Siehe Enqueue-Funktionen mit Cloud Tasks in der Cloud Functions für Informationen zum Schreiben von Funktionen für Aufgabenwarteschlangen.
Funktionsdefinition (nur 1. Generation)
import { tasks } from "firebase-functions/v1";
export const yourFunctionName = tasks.taskQueue().onDispatch(async (data, context) => {
// ...
});
Ressourcendeklaration (extension.yaml)
resources:
- name: myTaskFunction
type: firebaseextensions.v1beta.function
description: >-
Perform a task when triggered by a lifecycle event
properties:
taskQueueTrigger: {}
Lege die taskQueueTrigger
-Eigenschaft entweder auf {}
oder eine Karte mit Optionen fest, die
Passen Sie die Ratenbegrenzungen und das Wiederholungsverhalten der Aufgabenwarteschlange an. Weitere Informationen finden Sie unter Aufgaben abstimmen
Wiedergabeliste.
Wenn Sie die Funktion für die Lebenszyklus-Ereignisse der Erweiterung auslösen möchten, fügen Sie
lifecycleEvents
-Datensätze mit dem Namen der Funktion und einem optionalen
Verarbeitungsmeldung, die in der Firebase-Konsole angezeigt wird,
die Verarbeitung beginnt.
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
Eine von Analytics ausgelöste Funktion wird ausgeführt, wenn ein angegebenes Analytics-Ereignis protokolliert.
Siehe Google Analytics-Trigger in der Cloud Functions-Dokumentation für Informationen zum Schreiben von durch Analytics ausgelösten Funktionen.
Funktionsdefinition (nur 1. Generation)
import { analytics } from "firebase-functions/v1";
export const yourFunctionName = analytics.event("event_name").onLog((event, context) => {
// ...
});
Ressourcendeklaration (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: ...
Wenn Nutzer das Analytics-Ereignis konfigurieren können sollen, auf das gewartet werden soll, wenn sie Ihre Erweiterung installieren, fügen Sie Ihrer extension.yaml
-Datei einen neuen Parameter hinzu und verweisen Sie in der resource
-Deklaration Ihrer Funktion darauf:
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
Eine durch Authentifizierung ausgelöste Funktion wird ausgeführt, wenn ein Nutzer erstellt oder gelöscht wird.
Siehe Firebase Authentication-Trigger in der Cloud Functions Dokumentation mit Informationen zum Schreiben von durch Auth ausgelösten Funktionen.
Funktionsdefinition (nur 1. Generation)
import { auth } from "firebase-functions/v1";
export const yourFunctionName = auth.user().onCreate((user, context) => {
// ...
});
export const yourFunctionName2 = auth.user().onDelete((user, context) => {
// ...
});
Ressourcendeklaration (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: ...
Die folgende Tabelle zeigt, wie die einzelnen unterstützten Authentication-Ereignisse angegeben werden Typen:
Cloud Functions Ereignistrigger | eventType |
Beschreibung |
---|---|---|
onCreate() |
providers/firebase.auth/eventTypes/user.create |
Der neue Nutzer wurde erstellt. |
onDelete() |
providers/firebase.auth/eventTypes/user.delete |
Nutzer gelöscht |
Cloud Firestore
Eine durch Cloud Firestore ausgelöste Funktion wird ausgeführt, wenn ein Dokument erstellt, aktualisiert oder gelöscht wurden.
Informationen zum Schreiben von durch Firestore ausgelösten Funktionen finden Sie in der Cloud Functions-Dokumentation unter Cloud Firestore-Trigger.
Funktionsdefinition (nur 1. Generation)
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.
// ...
});
Ressourcendeklaration (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: ...
Die folgende Tabelle zeigt, wie die einzelnen unterstützten Cloud Firestore angegeben werden Ereignistypen:
Cloud Functions-Ereignistrigger | eventType |
Beschreibung |
---|---|---|
onCreate() |
providers/cloud.firestore/eventTypes/document.create |
Neues Dokument erstellt |
onDelete() |
providers/cloud.firestore/eventTypes/document.delete |
Dokument gelöscht |
onUpdate() |
providers/cloud.firestore/eventTypes/document.update |
Dokument aktualisiert |
onWrite() |
providers/cloud.firestore/eventTypes/document.write |
Dokument erstellt, gelöscht oder aktualisiert |
Wenn Sie möchten, dass Nutzer den Dokumentpfad bei der Installation konfigurieren können
Erweiterung hinzufügen, fügen Sie der Datei extension.yaml
einen neuen Parameter hinzu
den Parameter in der resource
-Deklaration der Funktion:
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
Eine durch Pub/Sub ausgelöste Funktion wird ausgeführt, wenn eine Nachricht in einem bestimmten Thema veröffentlicht wird.
Weitere Informationen finden Sie in der Cloud Functions-Dokumentation unter Pub/Sub-Trigger für Informationen zum Schreiben von durch Pub/Sub ausgelösten Funktionen.
Funktionsdefinition (nur 1. Generation)
import { pubsub } from "firebase-functions/v1";
export const yourFunctionName = pubsub.topic("topic_name").onPublish((message, context) => {
// ...
});
Ressourcendeklaration (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: ...
Wenn Sie möchten, dass Nutzer das Thema Pub/Sub konfigurieren können, wenn
installiert Ihre Erweiterung. Fügen Sie der Datei extension.yaml
einen neuen Parameter hinzu.
und verweisen Sie in der resource
-Deklaration der Funktion auf den Parameter:
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
Eine von der Realtime Database ausgelöste Funktion wird ausgeführt, wenn ein Pfad erstellt, aktualisiert oder gelöscht wird, der einem bestimmten Muster entspricht.
Siehe Realtime Database-Trigger in der Cloud Functions-Dokumentation finden Sie Informationen zum Schreiben von RTDB-ausgelösten Funktionen.
Funktionsdefinition (nur 1. Generation)
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.
// ...
});
Ressourcendeklaration (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: ...
Die folgende Tabelle zeigt, wie die einzelnen unterstützten Cloud Firestore angegeben werden Ereignistypen:
Cloud Functions-Ereignistrigger | eventType |
Beschreibung |
---|---|---|
onCreate() |
providers/google.firebase.database/eventTypes/ref.create |
Daten erstellt |
onDelete() |
providers/google.firebase.database/eventTypes/ref.delete |
Daten gelöscht |
onUpdate() |
providers/google.firebase.database/eventTypes/ref.update |
Daten aktualisiert |
onWrite() |
providers/google.firebase.database/eventTypes/ref.write |
Daten erstellt, gelöscht oder aktualisiert |
Wenn Nutzer den Pfad für die Wiedergabe bei der Installation Ihrer Erweiterung konfigurieren können sollen, fügen Sie Ihrer extension.yaml
-Datei einen neuen Parameter hinzu und verweisen Sie in der resource
-Deklaration Ihrer Funktion darauf:
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
Eine durch Remote Config ausgelöste Funktion wird ausgeführt, wenn die Parametervorlage eines Projekts aktualisiert.
Informationen zum Erstellen von Remote Config-ausgelösten Funktionen finden Sie in der Cloud Functions-Dokumentation unter Remote Config-Trigger.
Funktionsdefinition (nur 1. Generation)
import { remoteConfig } from "firebase-functions/v1";
export const yourFunctionName = remoteConfig.onUpdate((version, context) => {
// ...
});
Ressourcendeklaration (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
Eine durch Cloud Storage ausgelöste Funktion wird ausgeführt, wenn ein Objekt erstellt, archiviert oder oder wenn sich die Metadaten ändern.
Informationen zum Schreiben von durch Storage ausgelösten Funktionen finden Sie in der Cloud Functions-Dokumentation unter Cloud Storage-Trigger.
Funktionsdefinition (nur 1. Generation)
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) => {
// ...
});
Ressourcendeklaration (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: ...
Die folgende Tabelle zeigt, wie die einzelnen unterstützten Cloud Storage angegeben werden Ereignistypen:
Cloud Functions Ereignistrigger | eventType |
Beschreibung |
---|---|---|
onFinalize() |
google.storage.object.finalize |
Erstellung eines Objekts |
onMetadataUpdate() |
google.storage.object.metadataUpdate |
Objektmetadaten aktualisiert |
onArchive() |
google.storage.object.archive |
Objekt wurde archiviert |
onDelete() |
google.storage.object.delete |
Objekt gelöscht |
Wenn Sie möchten, dass Nutzer den Storage-Bucket bei der Installation konfigurieren können
Erweiterung hinzufügen, fügen Sie der Datei extension.yaml
einen neuen Parameter hinzu
den Parameter in der resource
-Deklaration der Funktion:
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
Eine von Test Lab ausgelöste Funktion wird ausgeführt, wenn eine Testmatrix ihre Tests abgeschlossen hat.
Siehe Firebase Test Lab-Trigger in der Cloud Functions-Dokumentation finden Sie Informationen zum Schreiben von durch Test Lab ausgelösten Funktionen.
Funktionsdefinition (nur 1. Generation)
import { testLab } from "firebase-functions/v1";
export const yourFunctionName = testLab.testMatrix().onComplete((matrix, context) => {
// ...
});
Ressourcendeklaration (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 Trigger für Benachrichtigungen
Eine von Crashlytics ausgelöste Funktion wird ausgeführt, wenn Crashlytics eine Benachrichtigung veröffentlicht.
Siehe Firebase Alerts-Trigger in der Cloud Functions-Dokumentation für Informationen zum Schreiben von durch Benachrichtigungen ausgelösten Funktionen.
Funktionsdefinition (nur 2. Generation)
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) => {
// ...
});
Ressourcendeklaration (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: ...
Sie können die folgenden Werte für alerttype
verwenden
crashlytics.newFatalIssue
crashlytics.newNonfatalIssue
crashlytics.regression
crashlytics.stabilityDigest
crashlytics.velocity
crashlytics.newAnrIssue
Performance Monitoring Trigger für Benachrichtigungen
Eine Performance Monitoring-ausgelöste Funktion wird ausgeführt, wenn Performance Monitoring eine Benachrichtigung veröffentlicht.
Siehe Firebase Alerts-Trigger in der Cloud Functions-Dokumentation für Informationen zum Schreiben von durch Benachrichtigungen ausgelösten Funktionen.
Funktionsdefinition (nur 2. Generation)
import { onThresholdAlertPublished } from "firebase-functions/v2/alerts/performance";
export const yourFunctionName = onThresholdAlertPublished((event) => {
// ...
});
Ressourcendeklaration (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 Benachrichtigungstrigger
Eine App Distribution-ausgelöste Funktion wird ausgeführt, wenn App Distribution eine Benachrichtigung veröffentlicht.
Informationen zum Erstellen von durch Benachrichtigungen ausgelösten Funktionen finden Sie in der Cloud Functions-Dokumentation unter Firebase-Benachrichtigungstrigger.
Funktionsdefinition (nur 2. Generation)
import {
onNewTesterIosDevicePublished,
onInAppFeedbackPublished
} from "firebase-functions/v2/alerts/appDistribution";
export const yourFunctionName = onNewTesterIosDevicePublished((event) => {
// ...
});
export const yourFunctionName2 = onInAppFeedbackPublished((event) => {
// ...
});
Ressourcendeklaration (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: ...
Sie können die folgenden Werte für alerttype
verwenden
appDistribution.newTesterIosDevice
appDistribution.inAppFeedback
Trigger für benutzerdefinierte Ereignisse (Eventarc)
Eine durch Eventarc ausgelöste Funktion wird ausgeführt, wenn ein bestimmter Ereignistyp in einem auf bestimmte Kanäle beschränkt.
Weitere Informationen finden Sie unter Benutzerdefinierte Ereignistrigger erstellen und verarbeiten im Cloud Functions. Dokumentation mit Informationen zum Schreiben von durch Eventarc ausgelösten Funktionen.
Sie können auch Ereignisse aus Ihren Erweiterungen veröffentlichen, damit Nutzer die Möglichkeit haben, benutzerdefinierte Logik in Ihre Erweiterung integrieren. Weitere Informationen finden Sie unter Vom Entwickler bereitgestellte benutzerdefinierte Logik in einer Erweiterung.
Funktionsdefinition (nur 2. Generation)
import { onCustomEventPublished } from "firebase-functions/v2/eventarc";
export const yourFunctionName = onCustomEventPublished((event) => {
// ...
});
Ressourcendeklaration (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: ...
Der Kanal muss bereits vorhanden sein, wenn die Erweiterung installiert wird. Wenn Sie beispielsweise benutzerdefinierte Ereignisse aus einer anderen Erweiterung benötigen, mit der der Channel erstellt wird, bitten Sie Ihre Nutzer, diese Erweiterung zuerst zu installieren.
Mit dem obigen Beispiel wird ein Trigger für ein benutzerdefiniertes Ereignis für „Standard“ erstellt. Firebase
Kanal in Region us-central1
. Du kannst den Kanalnamen und die Region festlegen,
mithilfe von Parametern anpassen. Beispiel:
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}