Die Spezifikationsdatei Ihrer Erweiterung (extension.yaml
) enthält die
Metadaten, deklariert die von der Erweiterung und den APIs erstellten Ressourcen und
Zugriff, der von der Erweiterung erforderlich ist, und definiert alle vom Nutzer konfigurierten Parameter
die von der Erweiterung bereitgestellt werden.
In den Tabellen auf dieser Seite werden die für extension.yaml
verfügbaren Felder beschrieben.
-Datei.
Grundlegende 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/
Basisfelder | |||||||||
---|---|---|---|---|---|---|---|---|---|
name String (erforderlich) |
ID für die Erweiterung. Darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten. 40 Zeichen Limit Hinweis:Mit diesem Wert wird die Instanz-ID (die dann verwendet wird, um die Namen der das Dienstkonto der Erweiterung und die erweiterungsspezifischen Ressourcen). |
||||||||
version String (erforderlich) |
Version der Erweiterung. Muss der semver-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 Boolescher Wert (optional) |
Ob für die von der Erweiterung verwendeten Dienste eine kostenpflichtige Version erforderlich ist Firebase-Rechnungskonto Immer auf |
||||||||
displayName String (optional) |
Anschaulicher Anzeigename für die Erweiterung (3–5 Wörter). Maximal 40 Zeichen. |
||||||||
description String (optional) |
Kurze Beschreibung der Aufgabe, die Ihre Erweiterung ausführt (~1 Satz). | ||||||||
icon String (optional) |
Datei, die als Symbol der Erweiterung verwendet werden soll
Diese Datei muss eine quadratische PNG-Datei mit einer Auflösung von 512 x 512 bis 1.024 x 1.024 Pixel sein.
Speichern Sie die Datei im selben Verzeichnis wie Beachten Sie beim Entwerfen eines Symbols für Ihr Erweiterung:
|
||||||||
tags Liste mit Strings (optional) |
Tags, damit Nutzer Ihre Erweiterung leichter finden.
Die folgenden Tags werden den Kategorien im Extensions Hub zugeordnet:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl String (optional) |
Öffentliche URL, unter der 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 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 Autoren, die zur Erweiterung beitragen. 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 API und die Google APIs angegeben, die von der Erweiterung verwendet werden. Wenn Nutzende die Erweiterung installieren, können sie diese APIs automatisch in für ihr Projekt.
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. Dienst Konto, das für die Erweiterung bereitgestellt wurde, erhält diese Rollen.
Sie können nur eine der Optionen unterstützten Rollen.
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 den Betrieb 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 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. (in der Regel REST APIs). Die Firebase Extensions-Plattform bietet keine zur automatischen Aktivierung oder Durchführung der Autorisierung für diese Dienste.
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 den Betrieb der Erweiterung erforderlich ist |
pricingUri String (erforderlich) |
URI zu Preisinformationen für den Dienst |
Vom Nutzer konfigurierbare Parameter
Diese Felder definieren die Parameter, die die Erweiterung für Nutzer zur Verfügung stellt zu konfigurieren.
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. Sie verwenden diesen Namen, um auf den Parameter zu verweisen. -Wert im Code. |
label String (erforderlich) |
Kurze Beschreibung des Parameters. Wird dem Nutzer angezeigt, wenn er zur Eingabe des Parameterwerts aufgefordert. |
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 verlässt leer. |
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 Boolescher Wert (optional) |
Legt fest, ob der Nutzer einen leeren String senden kann, wenn er
zur Eingabe des Parameterwerts aufgefordert. 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. Standardeinstellung:
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 können zusätzliche oder eine andere UI-Präsentation. Weitere Informationen finden Sie in den folgenden Abschnitten. |
Auswählbare und mehrfach auswählbare Parameter
Auswählbare und mehrfach auswählbare Parameter fordern Nutzer auf, aus einer Liste von vordefinierte Optionen.
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 ein einzelner Wert sein kann ( |
||||||
options Liste mit 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
Ressourcenparameterfelder | |
---|---|
type String |
Gibt an, dass der Parameter eine Projektressource darstellt |
resourceType String (erforderlich) |
Der Ressourcentyp, bei dem der Nutzer zur Auswahl aufgefordert wird. Zulässige Werte:
Allerdings verfügen derzeit nur Cloud Storage-Buckets über eine Auswahl-UI. Andere Ressourcentypen werden als Freitexteingabefelder 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, kann 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
Diese Felder deklarieren die in einer Erweiterung enthaltenen Cloud Functions-Funktionen. Die Ressource die Syntax der Deklaration der 1. Generation und der 2. Generation etwas unterschiedlich. Funktionen, die in einer Erweiterung nebeneinander bestehen 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 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name String (erforderlich) |
Nutzerfreundlicher Name für die exportierte Funktion. Wenn Sie das Attribut Der endgültige Name der Funktion deployed befindet sich in der
folgendes 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 . |
||||||||||||||||
properties (erforderlich) |
Cloud Functions-Properties der 1. Generation Die wichtigsten Eigenschaften sind unten aufgeführt. Die vollständige Liste finden Sie Cloud Funktionsreferenz.
|
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 das Attribut Der endgültige Name der Funktion deployed befindet sich in der
folgendes 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 . |
||||||||||||||||||||||||||||
properties (erforderlich) |
Cloud Functions-Attribute der 2. Generation. Die wichtigsten Eigenschaften sind unten aufgeführt. Die vollständige Liste finden Sie Cloud Funktionsreferenz.
Außerdem gibt es drei Objekttypfelder mit eigenen Eigenschaften:
|
Lebenszyklus-Ereignisse
Mit Lebenszyklusereignissen können Sie Funktionen angeben, die ausgeführt werden, wenn ein Nutzer die App installiert, oder eine Instanz der Erweiterung konfigurieren. Weitere Informationen finden Sie unter Lebenszyklusereignisse einer 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 .
|
||||||
onUpdate (optional) |
Gibt eine Funktion an, die ausgeführt wird, wenn ein Nutzer die .
|
||||||
onConfigure (optional) |
Gibt eine Funktion an, die ausgeführt wird, wenn ein Nutzer den Parameter neu konfiguriert .
|
Benutzerdefinierte Ereignisse (Eventarc)
Benutzerdefinierte Ereignisse sind Ereignisse, die Ihre Erweiterung sendet, um Nutzern das Einfügen von eigene Logik in Ihre Erweiterung einfügen. Weitere Informationen finden Sie im Abschnitt „Eventarc“ in 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 | |
---|---|
type String (erforderlich) |
Die Typ-ID des Ereignisses. Erstellen Sie die ID aus 3 bis 4 Zeichen. Durch Punkte getrennte Felder: Publisher-ID, Name der Erweiterung und Ereignisname sind Pflichtfelder. wird das Versionsfeld empfohlen. Wählen Sie eine eindeutige und einen beschreibenden Ereignisnamen für jeden veröffentlichten Ereignistyp. |
description String (erforderlich) |
Beschreibung des Termins. |