Die Spezifikationsdatei Ihrer Erweiterung (extension.yaml
) enthält die Metadaten der 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 nutzerkonfigurierten Parameter.
In den Tabellen auf dieser Seite werden die Felder beschrieben, die für eine extension.yaml
-Datei verfügbar sind.
Allgemeine 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/
Einfache Felder | |||||||||
---|---|---|---|---|---|---|---|---|---|
name String (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 ID wird dann verwendet, um die Namen des Dienstkontos der Erweiterung und der extensionspezifischen Ressourcen zu generieren. |
||||||||
version String (erforderlich) |
Version der Erweiterung. Muss der semantischen Versionsverwaltung entsprechen (z. B. 1.2.0). |
||||||||
specVersion String (erforderlich) |
Version der Firebase Extensions-Spezifikation. Aktueller Wert: |
||||||||
license String (optional) |
Lizenz für die Erweiterung. Ihre Erweiterung muss mit |
||||||||
billingRequired boolean (optional) |
Ob für die von der Erweiterung verwendeten Dienste ein kostenpflichtiges Firebase-Rechnungskonto erforderlich ist. Immer auf |
||||||||
displayName String (optional) |
Ein nutzerfreundlicher Anzeigename für die Erweiterung (3–5 Wörter). Max. 40 Zeichen. |
||||||||
description String (optional) |
Kurze Beschreibung der Aufgabe, die Ihre Erweiterung ausführt (ca. 1 Satz). | ||||||||
icon String (optional) |
Datei, die als Symbol für Ihre Erweiterung auf Diese Datei muss ein quadratisches PNG-Bild mit einer Größe zwischen 512 × 512 und 1.024 × 1.024 Pixel sein.
Speichern Sie die Datei im selben Verzeichnis wie Beachten Sie beim Entwerfen eines Symbols für Ihre Erweiterung die folgenden Richtlinien:
|
||||||||
tags Liste von Strings (optional) |
Tags, damit Nutzer Ihre Erweiterung leichter finden.
Die folgenden Tags werden Kategorien im Extensions Hub zugeordnet:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl String (optional) |
Öffentliche URL, über die auf das Erweiterungsverzeichnis zugegriffen werden kann. | ||||||||
releaseNotesUrl String (optional) |
Öffentliche URL, über die auf die Versionshinweise für die Erweiterung zugegriffen werden kann. | ||||||||
author ein Autorobjekt (optional) |
Der primäre Autor und Ansprechpartner für die Erweiterung. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributors Liste der Autorobjekte (optional) |
Alle zusätzlichen Mitwirkenden 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
In diesen Feldern werden die Firebase- und Google-APIs angegeben, die von der Erweiterung verwendet werden. 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 | |
---|---|
apiName String (erforderlich) |
Name der Google-API Muss dem Feld Dienstname entsprechen, das auf der Übersichtsseite jeder API (Beispiel) in der Google Cloud API-Bibliothek aufgeführt ist. |
reason String (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 | |
---|---|
role String (erforderlich) |
Name der IAM-Rolle, die für die Funktion der Erweiterung erforderlich ist Muss eine der unterstützten Rollen sein. |
reason String (erforderlich) |
Kurze Beschreibung, warum die Erweiterung den durch diese Rolle gewährten Zugriff benötigt |
resource String (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 von der Erweiterung verwendet werden (in der Regel REST APIs). Die Firebase Extensions-Plattform bietet keine Möglichkeit, die Autorisierung für diese Dienste automatisch zu aktivieren oder durchzuführen.
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 | |
---|---|
name String (erforderlich) |
Name des externen Dienstes, der für die Funktion der Erweiterung erforderlich ist |
pricingUri String (erforderlich) |
URI zu Preisinformationen für den Dienst |
Von Nutzern konfigurierbare Parameter
In diesen Feldern werden die Parameter definiert, die die Erweiterung Nutzern 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 String (erforderlich) |
Name des Parameters. Mit diesem Namen wird im Code auf den Parameterwert verwiesen. |
label String (erforderlich) |
Kurze Beschreibung des Parameters. Wird dem Nutzer angezeigt, wenn er nach dem Wert des Parameters gefragt wird. |
description String (optional) |
Ausführliche Beschreibung des Parameters. Wird dem Nutzer angezeigt, wenn er nach dem Wert des Parameters gefragt wird. Unterstützt Markdown. |
example String (optional) |
Beispielwert für den Parameter. |
default String (optional) |
Standardwert für den Parameter, wenn der Nutzer den Wert des Parameters leer lässt. |
validationRegex String (optional) |
Regulärer Ausdruck zur Validierung des vom Nutzer konfigurierten Werts des Parameters. Google RE2-Syntax |
validationErrorMessage String (optional) |
Fehlermeldung, die angezeigt wird, wenn die Regex-Validierung fehlschlägt. |
required boolean (optional) |
Gibt an, ob der Nutzer einen leeren String senden kann, wenn er nach dem Wert des Parameters gefragt wird. Die Standardeinstellung ist true .
|
immutable boolean (optional) |
Gibt an, 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 |
type String (optional) |
Der Parametertyp. Für spezielle Parametertypen gelten möglicherweise zusätzliche Anforderungen oder sie werden in der Benutzeroberfläche anders dargestellt. Weitere Informationen finden Sie in den folgenden Abschnitten. |
Auswählbare Parameter und Parameter mit Mehrfachauswahl
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 mit mehreren Auswahlmöglichkeiten | |||||||
---|---|---|---|---|---|---|---|
type string |
Gibt an, dass der Parameter ein Wert ( |
||||||
options Liste der Optionen (erforderlich) |
Die Optionen, aus denen der Nutzer auswählen kann
|
Auswählbare Ressourcenparameter
Bei auswählbaren Ressourcenparametern werden Nutzer aufgefordert, eine Ressource (z. B. eine Datenbankinstanz oder einen Speicher-Bucket) 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 string |
Gibt an, dass der Parameter eine Projektressource darstellt. |
resourceType String (erforderlich) |
Der Typ der Ressource, die der Nutzer auswählen soll. Zulässige Werte:
Derzeit haben jedoch nur Cloud Storage-Buckets eine Auswahl-UI. Andere Ressourcentypen werden als Freiform-Texteingabefelder dargestellt. |
Secret-Parameter
Von Nutzern 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
Felder für geheime Parameter | |
---|---|
type string |
Gibt an, dass der Parameter ein Secret-Wert ist. |
Cloud Functions-Ressourcen
In diesen Feldern werden die in einer Erweiterung enthaltenen Cloud Functions deklariert. Die Syntax für die Ressourcendeklaration sieht bei Funktionen der 1. und 2. Generation, die in einer Erweiterung vorhanden sein können, etwas anders aus.
Cloud Functions (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 String (erforderlich) |
Nutzerfreundlicher Name für die exportierte Funktion. Wenn Sie die Der endgültige Name der bereitgestellten Funktion hat das folgende Format:
|
||||||||||||||||
type String (erforderlich) |
Für eine Funktionsressource der 1. Generation:
firebaseextensions.v1beta.function
|
||||||||||||||||
description String (erforderlich) |
Kurze Beschreibung der Aufgabe, die die Funktion für die Erweiterung ausführt. |
||||||||||||||||
properties (erforderlich) |
Eigenschaften von Cloud Functions (1. Generation). Die wichtigsten Attribute sind unten aufgeführt. Eine vollständige Liste finden Sie in der Cloud Functions-Referenz.
|
Cloud Functions (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 String (erforderlich) |
Nutzerfreundlicher Name für die exportierte Funktion. Wenn Sie die Der endgültige Name der bereitgestellten Funktion hat das folgende Format:
|
||||||||||||||||||||||||||||
type String (erforderlich) |
Für eine Funktionsressource der 2. Generation:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description String (erforderlich) |
Kurze Beschreibung der Aufgabe, die die Funktion für die Erweiterung ausführt. |
||||||||||||||||||||||||||||
properties (erforderlich) |
Eigenschaften von Cloud Functions 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 für Objekttypen mit eigenen Eigenschaften:
|
Lebenszyklus-Ereignisse
Mit Lebenszyklusereignissen 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 Lebenszyklusereignisse der 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 Lebenszyklusereignisse | |||||||
---|---|---|---|---|---|---|---|
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 zu Eventarc unter User-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
Felder für benutzerdefinierte Ereignisse | |
---|---|
type String (erforderlich) |
Die Typkennung des Ereignisses. Erstellen Sie die Kennung aus drei bis vier durch Punkte getrennten Feldern: Die Felder „Publisher-ID“, „Erweiterungsname“ und „Ereignisname“ sind erforderlich, das Feld „Version“ wird empfohlen. Wählen Sie für jeden veröffentlichten Ereignistyp einen eindeutigen und aussagekräftigen Ereignisnamen aus. |
description String (erforderlich) |
Beschreibung des Termins. |