Die Spezifikationsdatei (extension.yaml) Ihrer Erweiterung enthält die Metadaten der Erweiterung, deklariert die von der Erweiterung erstellten Ressourcen sowie die von der Erweiterung benötigten APIs und Zugriffsrechte und definiert alle von der Erweiterung bereitgestellten, vom Nutzer konfigurierten Parameter.
In den Tabellen auf dieser Seite werden die Felder beschrieben, die für eine extension.yaml-Datei verfügbar sind.
Allgemeine und personenidentifizierbare Informationen
name: your-extension-name
version: 1.0.0 # Semantic versioning (semver)
specVersion: v1beta # Always "v1beta"
license: Apache-2.0 # Always "Apache-2.0" (required to publish on extensions.dev)
billingRequired: true # Always "true"
displayName: Your extension name
description: >-
Description of the extension. (One or two
sentences.)
icon: icon.png
tags: [tag, anothertag]
sourceUrl: https://github.com/your-org/your-repo # GitHub repo URL
releaseNotesUrl: https://github.com/your-org/your-repo/blob/main/CHANGELOG.md
author:
authorName: Your Company
email: extensions@example.com
url: https://example.com/
contributors:
- authorName: Your Name
- authorName: Another Contributor
email: colleague@example.net
url: https://github.com/their-org/
| Grundlegende Felder | |||||||||
|---|---|---|---|---|---|---|---|---|---|
nameString (erforderlich) |
Kennung für die Erweiterung. Darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten. Maximal 40 Zeichen. Hinweis: Dieser Wert wird verwendet, um die Instanz-ID der Erweiterung zu generieren. Diese wird dann verwendet, um die Namen des Dienstkontos der Erweiterung und der erweiterungsspezifischen Ressourcen zu generieren. |
||||||||
versionString (erforderlich) |
Version der Erweiterung. Muss der semver-Versionsverwaltung folgen (z. B. 1.2.0). |
||||||||
specVersionString (erforderlich) |
Version der Firebase Extensions-Spezifikation. Aktueller Wert: |
||||||||
licenseString (optional) |
Lizenz für die Erweiterung. Ihre Erweiterung muss mit |
||||||||
billingRequiredBoolesch (optional) |
Gibt an, ob für die von der Erweiterung verwendeten Dienste ein kostenpflichtiges Firebase-Rechnungskonto erforderlich ist. Immer auf |
||||||||
displayNameString (optional) |
Anzeigename für die Erweiterung (3–5 Wörter). Maximal 40 Zeichen. |
||||||||
descriptionString (optional) |
Kurze Beschreibung der Aufgabe, die Ihre Erweiterung ausführt (ca. 1 Satz). | ||||||||
iconString (optional) |
Datei, die als Symbol für Ihre Erweiterung in Diese Datei muss ein quadratisches PNG-Bild mit einer Größe zwischen 512 × 512 und 1024 × 1024 Pixeln sein.
Legen Sie die Datei im selben Verzeichnis wie Beachten Sie beim Entwerfen eines Symbols für Ihre Erweiterung die folgenden Richtlinien:
|
||||||||
tagsListe von Strings (optional) |
Tags, mit denen Nutzer Ihre Erweiterung leichter finden können.
Die folgenden Tags sind Kategorien im Extensions Hub zugeordnet:
marketing,
messaging,
payments,
search,
shipping,
social,
utilities,
ai
|
||||||||
sourceUrlString (optional) |
Öffentliche URL, über die auf das Erweiterungsverzeichnis zugegriffen werden kann. | ||||||||
releaseNotesUrlString (optional) |
Öffentliche URL, unter der die Versionshinweise für die Erweiterung aufgerufen werden können. | ||||||||
authorEin „author“-Objekt (optional) |
Hauptautor und Ansprechpartner für die Erweiterung. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributorsListe der Autorenobjekte (optional) |
Zusätzliche Autoren, die an der Erweiterung mitgewirkt haben. contributors: - authorName: Your Name - authorName: Another Contributor email: colleague@example.net url: https://github.com/their-org/
|
||||||||
Firebase und Google Cloud APIs
In diesen Feldern werden die Firebase- und Google-APIs angegeben, die die Erweiterung verwendet. Wenn Nutzer die Erweiterung installieren, können sie diese APIs automatisch in ihrem Projekt aktivieren.
apis:
- apiName: apiname.googleapis.com
reason: Explanation of why the extension uses this API
- apiName: anotherapiname.googleapis.com
reason: Explanation of why the extension uses this API
| API-Felder | |
|---|---|
apiNameString (erforderlich) |
Name der Google API Muss dem Feld Dienstname entsprechen, das auf der Übersichtsseite der jeweiligen API (Beispiel) in der Google Cloud API-Bibliothek aufgeführt ist |
reasonString (erforderlich) |
Kurze Beschreibung, warum die Erweiterung diese API verwenden muss |
IAM-Rollen
In diesen Feldern werden die Cloud IAM-Rollen angegeben, die für die Erweiterung erforderlich sind. Dem für die Erweiterung bereitgestellten Dienstkonto werden diese Rollen zugewiesen.
Sie können nur eine der unterstützten Rollen angeben.
roles:
- role: product.role
reason: Explanation of why the extension needs this level of access
- role: anotherproduct.role
resource: projects/${project_id}/resource_type/*
reason: Explanation of why the extension needs this level of access
| Rollenfelder | |
|---|---|
roleString (erforderlich) |
Name der IAM-Rolle, die für die Ausführung der Erweiterung erforderlich ist Muss eine der unterstützten Rollen sein |
reasonString (erforderlich) |
Kurze Beschreibung, warum die Erweiterung den Zugriff benötigt, der durch diese Rolle gewährt wird |
resourceString (optional) |
Beschränken Sie den Bereich der Rolle auf diese Ressource. Der Standardwert ist |
Externe Dienstleistungen
In diesen Feldern werden die Nicht-Firebase- und Nicht-Google-Dienste angegeben, die die Erweiterung verwendet (normalerweise REST APIs). Die Firebase Extensions-Plattform bietet keine Möglichkeit, diese Dienste automatisch zu aktivieren oder zu autorisieren.
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
| Felder für externe Dienste | |
|---|---|
nameString (erforderlich) |
Name des externen Dienstes, der für die Erweiterung erforderlich ist |
pricingUriString (erforderlich) |
URI zu Preisinformationen für den Dienst |
Vom Nutzer konfigurierbare Parameter
In diesen Feldern werden die Parameter definiert, die die Erweiterung für Nutzer zur Konfiguration bereitstellt.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What do you want to set PARAM_ID to?
This is a longer description of the parameter, often phrased as a prompt
to the user.
- param: ANOTHER_PARAM_ID
label: Short description of the parameter
description: >
What do you want to set ANOTHER_PARAM_ID to?
This is a longer description of the parameter.
example: example-input
validationRegex: "^[a-zA-Z][a-zA-Z-]*[a-zA-Z]?$"
validationErrorMessage:
Must be a hyphen-delimited string of alphabetic characters
default: default-value
required: false
immutable: true
| Parameterfelder | |
|---|---|
paramString (erforderlich) |
Name des Parameters. Mit diesem Namen verweisen Sie im Code auf den Parameterwert. |
labelString (erforderlich) |
Kurze Beschreibung des Parameters. Wird dem Nutzer angezeigt, wenn er zur Eingabe des Parameterwerts aufgefordert wird. |
descriptionString (optional) |
Detaillierte Beschreibung des Parameters. Wird dem Nutzer angezeigt, wenn er zur Eingabe des Parameterwerts aufgefordert wird. Unterstützt Markdown. |
exampleString (optional) |
Beispielwert für den Parameter. |
defaultString (optional) |
Standardwert für den Parameter, wenn der Nutzer den Wert des Parameters leer lässt. |
validationRegexString (optional) |
Regulärer Ausdruck zur Validierung des vom Nutzer konfigurierten Werts des Parameters. Google RE2-Syntax |
validationErrorMessageString (optional) |
Fehlermeldung, die angezeigt werden soll, wenn die Regex-Validierung fehlschlägt. |
requiredBoolesch (optional) |
Definiert, ob der Nutzer einen leeren String senden kann, wenn er zur Eingabe des Parameterwerts aufgefordert wird. Die Standardeinstellung ist true.
|
immutableBoolesch (optional) |
Legt fest, ob der Nutzer den Wert des Parameters nach der Installation ändern kann (z. B. wenn er die Erweiterung neu konfiguriert). Die Standardeinstellung ist Hinweis: Wenn Sie einen „location“-Parameter für die bereitgestellten Funktionen Ihrer Erweiterung definieren, legen Sie dieses Feld auf |
typeString (optional) |
Der Parametertyp. Für spezielle Parametertypen gelten möglicherweise zusätzliche Anforderungen oder eine andere UI-Darstellung. Weitere Informationen finden Sie in den folgenden Abschnitten. |
Auswählbare und mehrfach auswählbare Parameter
Bei auswählbaren und mehrfach auswählbaren Parametern werden Nutzer aufgefordert, aus einer Liste vordefinierter Optionen auszuwählen.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
Do you want to enable the option?
type: select
options:
- label: Yes
value: true
- label: No
value: false
- param: ANOTHER_PARAM_ID
label: Short description of the parameter
description: >-
Which options do you want to enable?
type: multiSelect
options:
- value: red
- value: green
- value: blue
| Parameterfelder für Multiple-Choice-Fragen | |||||||
|---|---|---|---|---|---|---|---|
typeString |
Gibt an, dass der Parameter ein Wert ( |
||||||
optionsListe der Optionen (erforderlich) |
Die Optionen, aus denen der Nutzer auswählen kann
|
||||||
Auswählbare Ressourcenparameter
Bei auswählbaren Ressourcenparametern werden Nutzer aufgefordert, eine Ressource (Datenbankinstanz, Storage-Bucket usw.) aus ihrem Projekt auszuwählen.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
Which resource do you want to use?
type: selectresource
resourceType: product.googleapis.com/ResourceType
| Ressourcenparameterfelder | |
|---|---|
typeString |
Gibt an, dass der Parameter eine Projektressource darstellt. |
resourceTypeString (erforderlich) |
Der Ressourcentyp, den der Nutzer auswählen soll. Zulässige Werte:
Derzeit gibt es jedoch nur für Cloud Storage-Buckets eine Auswahl-UI. Andere Ressourcentypen werden als Eingabefelder für beliebigen Text dargestellt. |
Secret-Parameter
Vom Nutzer bereitgestellte Secret-Werte (z. B. API-Schlüssel) werden anders behandelt:
- Secret-Werte werden mit Cloud Secret Manager gespeichert. Nur autorisierte Clients (z. B. eine installierte Instanz einer Erweiterung) können auf diese Werte zugreifen.
- Wenn Nutzer aufgefordert werden, diese Werte anzugeben, wird ihre Eingabe nicht angezeigt.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
| Secret-Parameterfelder | |
|---|---|
typeString |
Gibt an, dass der Parameter ein Secret-Wert ist |
Cloud Functions-Ressourcen
In diesen Feldern werden die Cloud Functions-Funktionen deklariert, die in einer Erweiterung enthalten sind. Die Syntax für die Ressourcendeklaration unterscheidet sich geringfügig zwischen Funktionen der 1. und 2. Generation, die in einer Erweiterung gleichzeitig vorhanden sein können.
Cloud Functions-Funktionen der 1. Generation
resources:
- name: functionName
type: firebaseextensions.v1beta.function
description: >-
Description of what the function does. (One or two
sentences.)
properties:
runtime: runtime-version
eventTrigger:
eventType: google.product.event
resource: projects/_/resource/specifier
| Ressourcenfelder | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nameString (erforderlich) |
Nutzerfreundlicher Name für die exportierte Funktion. Wenn Sie das Attribut Der endgültige Name der bereitgestellten Funktion hat das folgende Format: |
||||||||||||||||
typeString (erforderlich) |
Für eine Funktionsressource der 1. Generation:
firebaseextensions.v1beta.function
|
||||||||||||||||
descriptionString (erforderlich) |
Kurze Beschreibung der Aufgabe, die die Funktion für die Erweiterung ausführt. |
||||||||||||||||
properties(erforderlich) |
Cloud Functions-Attribute der 1. Generation. Die wichtigsten Attribute sind unten aufgeführt. Eine vollständige Liste finden Sie in der Cloud Functions-Referenz.
|
||||||||||||||||
Cloud Functions-Funktionen der 2. Generation
resources:
- name: functionName
type: firebaseextensions.v1beta.v2function
description: >-
Description of what the function does. (One or two
sentences.)
properties:
buildConfig:
runtime: nodejs16
serviceConfig:
availableMemory: 512M
eventTrigger:
eventType: google.firebase.firebasealerts.alerts.v1.published
triggerRegion: global
eventFilters:
- attribute: alerttype
value: crashlytics.newFatalIssue
| Ressourcenfelder | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nameString (erforderlich) |
Nutzerfreundlicher Name für die exportierte Funktion. Wenn Sie das Attribut Der endgültige Name der bereitgestellten Funktion hat das folgende Format: |
||||||||||||||||||||||||||||
typeString (erforderlich) |
Für eine Funktionsressource der 2. Generation: firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
descriptionString (erforderlich) |
Kurze Beschreibung der Aufgabe, die die Funktion für die Erweiterung ausführt. |
||||||||||||||||||||||||||||
properties(erforderlich) |
Cloud Functions-Eigenschaften der 2. Generation. Die wichtigsten Attribute sind unten aufgeführt. Eine vollständige Liste finden Sie in der Cloud Functions-Referenz.
Außerdem gibt es drei Felder vom Typ „Objekt“ mit eigenen Attributen:
|
||||||||||||||||||||||||||||
Lifecycle-Events
Mit Lebenszyklus-Ereignissen können Sie Funktionen angeben, die ausgeführt werden, wenn ein Nutzer eine Instanz Ihrer Erweiterung installiert, aktualisiert oder konfiguriert. Weitere Informationen finden Sie unter Lifecycle-Events Ihrer Erweiterung verarbeiten.
lifecycleEvents:
onInstall:
function: myTaskFunction
processingMessage: Describes the task being completed
onUpdate:
function: myOtherTaskFunction
processingMessage: Describes the task being completed
onConfigure:
function: myOtherTaskFunction
processingMessage: Describes the task being completed
| Felder für Lifecycle-Events | |||||||
|---|---|---|---|---|---|---|---|
onInstall(optional) |
Gibt eine Funktion an, die ausgeführt wird, wenn ein Nutzer die Erweiterung installiert.
|
||||||
onUpdate(optional) |
Gibt eine Funktion an, die ausgeführt wird, wenn ein Nutzer die Erweiterung aktualisiert.
|
||||||
onConfigure(optional) |
Gibt eine Funktion an, die ausgeführt wird, wenn ein Nutzer die Erweiterung neu konfiguriert.
|
||||||
Benutzerdefinierte Ereignisse (Eventarc)
Benutzerdefinierte Ereignisse sind Ereignisse, die von Ihrer Erweiterung ausgegeben werden, damit Nutzer ihre eigene Logik in Ihre Erweiterung einfügen können. Weitere Informationen finden Sie im Abschnitt „Eventarc“ unter Nutzer-Hooks zu einer Erweiterung hinzufügen.
events:
- type: publisher-id.extension-name.version.event-name
description: Description of the event
- type: publisher-id.extension-name.version.another-event-name
description: Description of the other event
| Benutzerdefinierte Ereignisfelder | |
|---|---|
typeString (erforderlich) |
Die Typkennung des Ereignisses. Erstellen Sie die Kennung aus drei bis vier durch Punkte getrennten Feldern: Die Felder für die Publisher-ID, den Erweiterungsnamen und den Ereignisnamen sind erforderlich. Das Version-Feld wird empfohlen. Wählen Sie für jeden Ereignistyp, den Sie veröffentlichen, einen eindeutigen und aussagekräftigen Ereignisnamen aus. |
descriptionString (erforderlich) |
Beschreibung des Termins. |