Die Spezifikationsdatei Ihrer Erweiterung ( extension.yaml
) enthält die Metadaten Ihrer Erweiterung, deklariert die von der Erweiterung erstellten Ressourcen sowie die von der Erweiterung benötigten APIs und Zugriffe und definiert alle von der Erweiterung bereitgestellten benutzerkonfigurierten Parameter.
Die Tabellen auf dieser Seite beschreiben die Felder, die für eine Datei extension.yaml
verfügbar sind.
Grundlegende und identifizierende 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/
Grundfelder | |||||||||
---|---|---|---|---|---|---|---|---|---|
name Zeichenfolge (erforderlich) | Bezeichner für die Erweiterung. Darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten; Maximal 40 Zeichen. Hinweis: Dieser Wert wird zum Generieren der Instanz-ID der Erweiterung verwendet (die dann zum Generieren der Namen des Dienstkontos der Erweiterung und der erweiterungsspezifischen Ressourcen verwendet wird). | ||||||||
version Zeichenfolge (erforderlich) | Version der Erweiterung. Muss der Semver-Versionierung folgen (z. B. 1.2.0). | ||||||||
specVersion Zeichenfolge (erforderlich) | Version der Firebase Extensions-Spezifikation. Aktueller Wert: | ||||||||
license Zeichenfolge (Optional) | Lizenz für die Erweiterung. Ihre Erweiterung muss mit | ||||||||
billingRequired Boolescher Wert (Optional) | Ob für die von der Erweiterung genutzten Dienste ein kostenpflichtiges Firebase-Rechnungskonto erforderlich ist. Immer auf | ||||||||
displayName Zeichenfolge (Optional) | Freundlicher Anzeigename für die Erweiterung (3–5 Wörter). Maximal 40 Zeichen. | ||||||||
description Zeichenfolge (Optional) | Kurze Beschreibung der Aufgabe, die Ihre Erweiterung ausführt (~1 Satz). | ||||||||
icon Zeichenfolge (Optional) | Datei, die als Symbol Ihrer Erweiterung auf Diese Datei muss eine quadratische PNG-Datei mit einer Größe zwischen 512 x 512 und 1024 x 1024 Pixel sein. Legen Sie die Datei im selben Verzeichnis wie Beachten Sie beim Entwerfen eines Symbols für Ihre Erweiterung die folgenden Richtlinien:
| ||||||||
tags Liste der Zeichenfolgen (Optional) | Tags, die Benutzern helfen, Ihre Erweiterung zu entdecken. Die folgenden Tags sind den Kategorien im Extensions Hub zugeordnet: marketing , messaging , payments , search , shipping , social , utilities , ai | ||||||||
sourceUrl Zeichenfolge (Optional) | Öffentliche URL, über die auf das Erweiterungsverzeichnis zugegriffen werden kann. | ||||||||
releaseNotesUrl Zeichenfolge (Optional) | Öffentliche URL, unter der auf die Versionshinweise für die Erweiterung zugegriffen werden kann. | ||||||||
author ein Autorenobjekt (Optional) | Hauptautor und Ansprechpartner für die Erweiterung. author: authorName: Your Company email: extensions@example.com url: https://example.com/
| ||||||||
contributors Liste der Autorenobjekte (Optional) | Alle weiteren beitragenden Autoren für die Erweiterung. contributors: - authorName: Your Name - authorName: Another Contributor email: colleague@example.net url: https://github.com/their-org/
|
Firebase- und Google Cloud-APIs
Diese Felder geben die Firebase- und Google-APIs an, die die Erweiterung verwendet. Wenn Benutzer 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 | |
---|---|
apiName Zeichenfolge (erforderlich) | Name der Google API Muss dem Feld „Dienstname“ entsprechen, wie es auf der Übersichtsseite jeder API ( Beispiel ) in der Google Cloud API-Bibliothek aufgeführt ist |
reason Zeichenfolge (erforderlich) | Kurze Beschreibung, warum die Erweiterung diese API verwenden muss |
IAM-Rollen
Diese Felder geben die Cloud IAM-Rollen an, die die Erweiterung erfordert. Diese Rollen werden dem für die Erweiterung bereitgestellten Dienstkonto 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 | |
---|---|
role Zeichenfolge (erforderlich) | Name der IAM-Rolle, die für den Betrieb der Erweiterung erforderlich ist Muss eine der unterstützten Rollen sein |
reason Zeichenfolge (erforderlich) | Kurze Beschreibung, warum die Erweiterung den durch diese Rolle gewährten Zugriff benötigt |
resource Zeichenfolge (Optional) | Beschränken Sie den Umfang der Rolle auf diese Ressource. Wenn es weggelassen wird, wird standardmäßig |
Externe Dienste
Diese Felder geben die Nicht-Firebase- und Nicht-Google-Dienste an, die die Erweiterung verwendet (normalerweise REST-APIs). Die Firebase Extensions-Plattform bietet keine Möglichkeit, diese Dienste automatisch zu aktivieren oder eine Autorisierung durchzuführen.
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
Externe Dienstleistungsfelder | |
---|---|
name Zeichenfolge (erforderlich) | Name des externen Dienstes, der für den Betrieb der Erweiterung erforderlich ist |
pricingUri Zeichenfolge (erforderlich) | URI zu Preisinformationen für den Dienst |
Vom Benutzer konfigurierbare Parameter
Diese Felder definieren die Parameter, die die Erweiterung den Benutzern zur Konfiguration zur Verfügung stellt.
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 | |
---|---|
param Zeichenfolge (erforderlich) | Name des Parameters. Sie verwenden diesen Namen, um im Code auf den Parameterwert zu verweisen. |
label Zeichenfolge (erforderlich) | Kurzbeschreibung für den Parameter. Wird dem Benutzer angezeigt, wenn er zur Eingabe des Parameterwerts aufgefordert wird. |
description Zeichenfolge (Optional) | Detaillierte Beschreibung des Parameters. Wird dem Benutzer angezeigt, wenn er zur Eingabe des Parameterwerts aufgefordert wird. Unterstützt Markdown. |
example Zeichenfolge (Optional) | Beispielwert für den Parameter. |
default Zeichenfolge (Optional) | Standardwert für den Parameter, wenn der Benutzer den Wert des Parameters leer lässt. |
validationRegex Zeichenfolge (Optional) | Regulärer Ausdruck zur Validierung des vom Benutzer konfigurierten Werts des Parameters. Google RE2-Syntax . |
validationErrorMessage Zeichenfolge (Optional) | Fehlermeldung, die angezeigt wird, wenn die Regex-Validierung fehlschlägt. |
required Boolescher Wert (Optional) | Definiert, ob der Benutzer eine leere Zeichenfolge senden kann, wenn er zur Eingabe des Parameterwerts aufgefordert wird. Der Standardwert ist true . |
immutable Boolescher Wert (Optional) | Definiert, ob der Benutzer den Wert des Parameters nach der Installation ändern kann (z. B. wenn er die Erweiterung neu konfiguriert). Der Standardwert ist Hinweis: Wenn Sie einen „Standort“-Parameter für die bereitgestellten Funktionen Ihrer Erweiterung definieren, legen Sie dieses Feld auf |
type Zeichenfolge (Optional) | Der Parametertyp. Für spezielle Parametertypen gelten möglicherweise zusätzliche Anforderungen oder eine andere Darstellung der Benutzeroberfläche. Siehe die folgenden Abschnitte. |
Wählbare und mehrfach wählbare Parameter
Auswählbare und mehrfach auswählbare Parameter fordern Benutzer auf, 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
Multiple-Choice-Parameterfelder | |||||||
---|---|---|---|---|---|---|---|
type Zeichenfolge | Gibt an, dass der Parameter ein Wert ( | ||||||
options Liste der Optionen (erforderlich) | Die Optionen, aus denen der Benutzer wählen kann
|
Wählbare Ressourcenparameter
Auswählbare Ressourcenparameter fordern Benutzer auf, eine Ressource (Datenbankinstanz, Speicher-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 | |
---|---|
type Zeichenfolge | Gibt an, dass der Parameter eine Projektressource darstellt |
resourceType Zeichenfolge (erforderlich) | Der Ressourcentyp, zu dessen Auswahl der Benutzer aufgefordert wird. Gültige Werte:
Allerdings verfügen derzeit nur Cloud Storage-Buckets über eine Auswahl-Benutzeroberfläche (andere Ressourcentypen werden als Freiform-Texteingabefelder dargestellt). |
Geheime Parameter
Vom Benutzer bereitgestellte geheime Werte (z. B. API-Schlüssel) werden unterschiedlich gehandhabt:
- Geheimwerte werden mit Cloud Secret Manager gespeichert. Nur autorisierte Clients (z. B. eine installierte Instanz einer Erweiterung) können auf diese Werte zugreifen.
- Wenn Benutzer zur Eingabe dieser Werte aufgefordert werden, wird ihre Eingabe nicht angezeigt.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
Geheime Parameterfelder | |
---|---|
type Zeichenfolge | Gibt an, dass der Parameter ein geheimer Wert ist |
Cloud Function-Ressourcen
Diese Felder deklarieren die in einer Erweiterung enthaltenen Cloud-Funktionen. Die Syntax der Ressourcendeklaration sieht zwischen Funktionen der 1. und 2. Generation, die in einer Erweiterung koexistieren können, etwas anders aus.
Cloud-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 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name Zeichenfolge (erforderlich) | Benutzerfreundlicher Name für die exportierte Funktion. Wenn Sie die Eigenschaft Der endgültige Name der bereitgestellten Funktion hat das folgende Format: | ||||||||||||||||
type Zeichenfolge (erforderlich) | Für eine Funktionsressource der 1. Generation: firebaseextensions.v1beta.function | ||||||||||||||||
description Zeichenfolge (erforderlich) | Kurze Beschreibung, welche Aufgabe die Funktion für die Erweiterung ausführt. | ||||||||||||||||
properties (erforderlich) | Cloud Functions-Eigenschaften der 1. Generation. Die wichtigsten Eigenschaften sind unten aufgeführt, die vollständige Liste finden Sie jedoch in der Cloud Functions-Referenz .
|
Cloud-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 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name Zeichenfolge (erforderlich) | Benutzerfreundlicher Name für die exportierte Funktion. Wenn Sie die Eigenschaft Der endgültige Name der bereitgestellten Funktion hat das folgende Format: | ||||||||||||||||||||||||||||
type Zeichenfolge (erforderlich) | Für eine Funktionsressource der 2. Generation: firebaseextensions.v1beta.v2function | ||||||||||||||||||||||||||||
description Zeichenfolge (erforderlich) | Kurze Beschreibung, welche Aufgabe die Funktion für die Erweiterung ausführt. | ||||||||||||||||||||||||||||
properties (erforderlich) | Cloud Functions-Eigenschaften der 2. Generation. Die wichtigsten Eigenschaften sind unten aufgeführt, die vollständige Liste finden Sie jedoch in der Cloud Functions-Referenz .
Es gibt außerdem drei objektartige Felder mit eigenen Eigenschaften:
|
Lebenszyklusereignisse
Mit Lebenszyklusereignissen können Sie Funktionen angeben, die ausgeführt werden, wenn ein Benutzer eine Instanz Ihrer Erweiterung installiert, aktualisiert oder konfiguriert. Siehe Behandeln der Lebenszyklusereignisse Ihrer Erweiterung .
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 Lebenszyklusereignisse | |||||||
---|---|---|---|---|---|---|---|
onInstall (Optional) | Gibt eine Funktion an, die ausgeführt wird, wenn ein Benutzer die Erweiterung installiert.
| ||||||
onUpdate (Optional) | Gibt eine Funktion an, die ausgeführt wird, wenn ein Benutzer die Erweiterung aktualisiert.
| ||||||
onConfigure (Optional) | Gibt eine Funktion an, die ausgeführt wird, wenn ein Benutzer die Erweiterung neu konfiguriert.
|
Benutzerdefinierte Ereignisse (Eventarc)
Benutzerdefinierte Ereignisse sind Ereignisse, die Ihre Erweiterung ausgibt, damit Benutzer ihre eigene Logik in Ihre Erweiterung einfügen können. Weitere Informationen finden Sie im Abschnitt Eventarc unter Hinzufügen von Benutzer-Hooks zu einer Erweiterung .
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 | |
---|---|
type Zeichenfolge (erforderlich) | Der Typbezeichner des Ereignisses. Konstruieren Sie die Kennung aus 3–4 durch Punkte getrennten Feldern: Die Felder „Herausgeber-ID“, „Erweiterungsname“ und „Ereignisname“ sind erforderlich. Das Versionsfeld wird empfohlen. Wählen Sie für jeden von Ihnen veröffentlichten Veranstaltungstyp einen eindeutigen und beschreibenden Veranstaltungsnamen. |
description Zeichenfolge (erforderlich) | Beschreibung der Veranstaltung. |