Die Spezifikationsdatei Ihrer Erweiterung (extension.yaml
) enthält die Metadaten Ihrer Erweiterung, deklariert die von der Erweiterung erstellten Ressourcen sowie die von der Erweiterung erforderlichen APIs und den Zugriff 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 | |||||||||
---|---|---|---|---|---|---|---|---|---|
name String (erforderlich) |
Kennung für die Erweiterung. Darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten. Die maximale Länge beträgt 40 Zeichen. Hinweis:Dieser Wert wird verwendet, um die Instanz-ID der Erweiterung zu generieren. Diese wird dann verwendet, um die Namen des Dienstkontos und der erweiterungsspezifischen Ressourcen zu generieren. |
||||||||
version String (erforderlich) |
Version der Erweiterung. Sie muss der SemVer-Versionierung 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 Firebase-Rechnungskonto für die kostenpflichtige Stufe erforderlich ist. Immer auf |
||||||||
displayName string (optional) |
Ein nutzerfreundlicher Anzeigename für die Erweiterung (3–5 Wörter). Maximal 40 Zeichen. |
||||||||
description string (optional) |
Eine kurze Beschreibung der Aufgabe, die Ihre Erweiterung ausführt (etwa ein Satz). | ||||||||
icon string (optional) |
Datei, die als Symbol der Erweiterung auf Diese Datei muss ein quadratisches PNG-Bild mit einer Größe von 512 × 512 bis 1.024 × 1.024 Pixeln 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, mit denen Nutzer Ihre Erweiterung leichter finden können.
Die folgenden Tags werden den 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, unter der die Versionshinweise für die Erweiterung aufgerufen werden können. | ||||||||
author ein Autorobjekt (optional) |
Hauptautor und Ansprechpartner für die Erweiterung. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributors Liste der Autorobjekte (optional) |
Alle weiteren Mitwirkenden an der 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) |
Eine 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. Diese Rollen werden dem Dienstkonto zugewiesen, das für die Erweiterung bereitgestellt wurde.
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 Sie muss eine der unterstützten Rollen sein. |
reason String (erforderlich) |
Eine kurze Beschreibung, warum die Erweiterung den Zugriff benötigt, der durch diese Rolle gewährt wird |
resource string (optional) |
Beschränken Sie den Umfang der Rolle auf diese Ressource. Der Standardwert ist |
Externe Dienstleistungen
In diesen Feldern werden die Dienste angegeben, die nicht von Firebase oder Google stammen und von der Erweiterung verwendet werden (in der Regel REST APIs). Die Firebase-Erweiterungsplattform 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 Nutzer über die Erweiterung konfigurieren können.
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) |
Detaillierte 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 reguläre Ausdrucksvalidierung fehlschlägt. |
required boolean (optional) |
Gibt an, ob der Nutzer einen leeren String einreichen kann, wenn er nach dem Wert des Parameters gefragt wird. Die Standardeinstellung ist true .
|
immutable boolean (optional) |
Gibt an, ob der Nutzer den Parameterwert nach der Installation ändern kann, z. B. wenn er die Erweiterung neu konfiguriert. Die Standardeinstellung ist Hinweis:Wenn Sie für die bereitgestellten Funktionen Ihrer Erweiterung einen Parameter „location“ definieren, setzen Sie dieses Feld auf |
type string (optional) |
Der Parametertyp. Für spezielle Parametertypen gelten möglicherweise zusätzliche Anforderungen oder eine andere Benutzeroberfläche. 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
Multiple-Choice-Parameterfelder | |||||||
---|---|---|---|---|---|---|---|
type String |
Gibt an, dass der Parameter einen 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 (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
Felder für Ressourcenparameter | |
---|---|
type String |
Gibt an, dass der Parameter eine Projektressource darstellt. |
resourceType String (erforderlich) |
Der Ressourcentyp, den der Nutzer auswählen soll. Zulässige Werte:
Derzeit gibt es jedoch nur für Cloud Storage-Buckets eine Auswahloberfläche. Andere Ressourcentypen werden als kostenlose Texteingabefelder angezeigt. |
Geheime 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 geheimer Wert ist. |
Cloud Functions-Ressourcen
In diesen Feldern werden die Cloud Functions deklariert, die in einer Erweiterung enthalten sind. Die Syntax der Ressourcendeklaration unterscheidet sich geringfügig zwischen Funktionen der 1. und der 2. Generation, die in einer Erweiterung nebeneinander existieren können.
Cloud Functions 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 String (erforderlich) |
Nutzerfreundlicher Name für die exportierte Funktion. Wenn Sie die Eigenschaft Der endgültige Name der bereitgestellten Funktion hat folgendes Format: |
||||||||||||||||
type String (erforderlich) |
Für eine Funktionsressource der 1. Generation:
firebaseextensions.v1beta.function
|
||||||||||||||||
description String (erforderlich) |
Eine kurze Beschreibung der Aufgabe, die die Funktion für die Erweiterung ausführt. |
||||||||||||||||
properties (erforderlich) |
Cloud Functions-Properties der 1. Generation Die wichtigsten Eigenschaften sind unten aufgeführt. Eine vollständige Liste finden Sie in der Referenz zu Cloud Functions.
|
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 Eigenschaft Der endgültige Name der bereitgestellten Funktion hat folgendes Format: |
||||||||||||||||||||||||||||
type String (erforderlich) |
Für eine Funktionsressource der 2. Generation:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description String (erforderlich) |
Eine kurze Beschreibung der Aufgabe, die die Funktion für die Erweiterung ausführt. |
||||||||||||||||||||||||||||
properties (erforderlich) |
Cloud Functions-Properties der 2. Generation Die wichtigsten Eigenschaften sind unten aufgeführt. Eine vollständige Liste finden Sie in der Referenz zu Cloud Functions.
Außerdem gibt es drei Felder vom Objekttyp 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 Lifecycle-Ereignisse 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 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 gesendet werden, damit Nutzer ihre eigene Logik in Ihre Erweiterung einfügen können. Weitere Informationen finden Sie im Abschnitt zu 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
Felder für benutzerdefinierte Ereignisse | |
---|---|
type String (erforderlich) |
Die Typ-ID des Ereignisses. Die Kennung besteht 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 von Ihnen veröffentlichten Ereignistyp einen eindeutigen und beschreibenden Ereignisnamen aus. |
description String (erforderlich) |
Beschreibung des Termins. |