Referenz für „extension.yaml“

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: v1beta

license
String
(optional)

Lizenz für die Erweiterung.

Ihre Erweiterung muss mit Apache-2.0 lizenziert sein.

billingRequired
Boolescher Wert
(optional)

Ob für die von der Erweiterung verwendeten Dienste eine kostenpflichtige Version erforderlich ist Firebase-Rechnungskonto

Immer auf true festgelegt.

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 extensions.dev und der Firebase-Konsole.

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 extension.yaml. Sie können kein Unterverzeichnis angeben.

Beachten Sie beim Entwerfen eines Symbols für Ihr Erweiterung:

  • Wählen Sie Hintergrund- und Artworkfarben aus, die zu Ihrer Marke passen.
  • Halten Sie die Symbolfarben einfach und verwenden Sie nur zwei Farben. Mehrere Farben kann Ihr Symbol visuell überfordern.
  • Aus dem gleichen Grund sollten Sie für Ihr Symbol keine Farbverläufe verwenden. Farbverläufe sind bei kleinen Größen schwer zu erkennen und das Symbol visuell zu gestalten komplex sind.
  • Verwenden Sie einfache, eindeutige Bilder, die die Funktionen Ihrer Erweiterung veranschaulichen.
  • Wenn Ihr Unternehmen mehrere Erweiterungen entwickelt, sollten Sie Ihr Logo nicht so verwenden, auf das Symbol. Nutzer haben Schwierigkeiten, zwischen Ihren Erweiterungen.
  • Das Artwork sollte prägnant und grafisch sein. Greife nicht zu zart oder aufwendig das sich in kleineren Größen nicht gut rendern lässt.
  • Verwenden Sie keine Wörter, die die Funktion Ihrer Erweiterung erklären. Text ist in kleineren Größen oft unlesbar.
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/
Autorenfelder
authorName
String
(erforderlich)

Name des Autors.

Kann eine Person, ein Unternehmen, eine Organisation usw. sein.

email
String
(optional)
E-Mail-Adresse des Autors.
url
String
(optional)
Öffentliche URL, unter der Informationen zum Autor abgerufen werden können.
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/
Autorenfelder
authorName
String
(erforderlich)

Name des Autors.

Kann eine Person, ein Unternehmen, eine Organisation usw. sein.

email
String
(optional)
E-Mail-Adresse des Autors.
url
String
(optional)
Öffentliche URL, unter der Informationen über den Autor zu finden sind.

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 projects/${project_id}, wenn nichts angegeben ist. Siehe Reduzieren den Umfang der Rollen.

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: false

Hinweis: Wenn Sie für die bereitgestellten Funktionen Ihrer Erweiterung einen Parameter „location“ definieren, setzen Sie dieses Feld auf true.

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

select oder multiselect

Gibt an, dass der Parameter ein einzelner Wert sein kann (select) oder mehrere Werte (multiselect) aus einer Reihe von vordefinierte Auswahlmöglichkeiten

options
Liste mit Optionen
(erforderlich)

Die Optionen, aus denen der Nutzer auswählen kann

Optionsfelder
value
String
(erforderlich)
Einer der Werte, die der Nutzer auswählen kann. Das ist der Wert, den Sie wenn Sie den Parameterwert im Code lesen.
label
String
(optional)
Kurze Beschreibung der auswählbaren Option. Wenn keine Angabe gemacht wird, lautet der Standardwert value.

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

selectresource

Gibt an, dass der Parameter eine Projektressource darstellt

resourceType
String
(erforderlich)

Der Ressourcentyp, bei dem der Nutzer zur Auswahl aufgefordert wird.

Zulässige Werte:

  • storage.googleapis.com/Bucket
  • firestore.googleapis.com/Database
  • firebasedatabase.googleapis.com/DatabaseInstance

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

secret

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 entryPoint nicht angeben (siehe unten), muss dieser Wert mit dem Namen der Funktion in der Funktionsquellcode.

Der endgültige Name der Funktion deployed befindet sich in der folgendes Format: ext-extension-instance-id-name

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.

Properties
location
(optional)

Speicherort, an dem die Funktion bereitgestellt werden soll. Standardeinstellung: us-central1

entryPoint
(optional)
Name der exportierten Funktion im Quellcode der Funktion nach dem die Erweiterung suchen soll. Die Standardeinstellung ist der Wert von name, oben.
sourceDirectory
(optional)

Verzeichnis, das package.json in seinem Stamm. Die Datei für den Quellcode Ihrer Funktionen muss sich in diesem -Verzeichnis. Die Standardeinstellung ist functions.

Hinweis: Das Feld main der Datei package.json gibt die Datei für Ihre Funktionsquellcode (wie index.js).

timeout
(optional)

Die maximale Ausführungszeit der Funktion.

  • Standardwert: 60s
  • Maximalwert: 540s
availableMemoryMb
(optional)

Die für die Funktion verfügbare Speichermenge in MB.

  • Standardwert: 256
  • Gültige Werte: 128, 256, 512, 1024 und 2048
runtime
(empfohlen)

Laufzeitumgebung für die Funktion.

httpsTrigger
oder
eventTrigger
oder
scheduleTrigger
oder
taskQueueTrigger
(einer dieser Funktionstriggertypen ist erforderlich)
Siehe Schreiben Cloud Functions für Erweiterungen. Trigger-Typ zu ermitteln.

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 entryPoint nicht angeben (siehe unten), muss dieser Wert mit dem Namen der Funktion in der Funktionsquellcode.

Der endgültige Name der Funktion deployed befindet sich in der folgendes Format: ext-extension-instance-id-name

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.

Properties
location
(optional)

Speicherort, an dem die Funktion bereitgestellt werden soll. Standardeinstellung: us-central1

sourceDirectory
(optional)

Verzeichnis, das package.json in seinem Stamm. Die Datei für den Quellcode Ihrer Funktionen muss sich in diesem -Verzeichnis. Die Standardeinstellung ist functions.

Hinweis: Das Feld main der package.json gibt die Datei für Ihre Funktionsquellcode (wie index.js).

Außerdem gibt es drei Objekttypfelder mit eigenen Eigenschaften:

buildConfig-Eigenschaften
buildConfig.runtime
(empfohlen)

Laufzeitumgebung für die Funktion.

buildConfig.entryPoint
(optional)
Name der exportierten Funktion im Quellcode der Funktion nach dem die Erweiterung suchen soll. Die Standardeinstellung ist der Wert von name, oben.
serviceConfig-Attribute
serviceConfig.timeoutSeconds
(optional)

Die maximale Ausführungszeit der Funktion.

  • Standardwert: 60
  • Maximalwert: 540
serviceConfig.availableMemory
(optional)
Die Größe des für eine Funktion verfügbaren Arbeitsspeichers. Standardeinstellung: 256M Unterstützte Einheiten sind k, M, G, Mi Gi Wenn keine Einheit angegeben ist, wird der Wert als Byte interpretiert.
Eigenschaften von „eventTrigger“
eventTrigger.eventType
(erforderlich)
Die Art des Ereignisses, auf das gewartet werden soll. Weitere Informationen finden Sie unter Cloud schreiben Funktionen für eine Erweiterung für die Ereignistypen, die für zu den einzelnen Produkten.
eventTrigger.eventFilters
(optional)
Filter, die die zu überwachenden Ereignisse weiter einschränken. Beispiel: Sie konnten nur auf Ereignisse warten, die mit einer bestimmten Ressource übereinstimmen Muster zu ändern. Weitere Informationen finden Sie unter Cloud schreiben Funktionen für eine Erweiterung mit Informationen zum Filtern der einzelnen Erweiterungen Ereignistyp.
eventTrigger.channel
(optional)
Der Name des Channels, der dem Trigger zugeordnet ist in projects/{project}/locations/{location}/channels/{channel} Format. Wenn Sie diese Eigenschaft weglassen, wartet die Funktion auf des Standardkanals des Projekts.
eventTrigger.triggerRegion
(optional)
Der Trigger empfängt nur Ereignisse aus dieser Region. Dies kann dieselbe Region wie die Funktion, eine andere Region oder oder die globale Region. Wenn nicht angegeben, wird standardmäßig in derselben Region wie die Funktion.

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 .

Funktionsspezifikation
function
String
(erforderlich)

Name der durch die Aufgabenwarteschlange ausgelösten Funktion, die das Ereignis verarbeitet.

Diese Funktion muss im resources deklariert werden. und taskQueue definiert ist.

processingMessage
String
(erforderlich)
Nachricht, die in der Firebase Console angezeigt wird, während die Aufgabe ausgeführt wird.
onUpdate
(optional)

Gibt eine Funktion an, die ausgeführt wird, wenn ein Nutzer die .

Funktionsspezifikation
function
String
(erforderlich)

Name der durch die Aufgabenwarteschlange ausgelösten Funktion, die das Ereignis verarbeitet.

Diese Funktion muss im resources deklariert werden. und taskQueue definiert ist.

processingMessage
String
(erforderlich)
Nachricht, die in der Firebase Console angezeigt wird, während sich die Aufgabe befindet Fortschritt.
onConfigure
(optional)

Gibt eine Funktion an, die ausgeführt wird, wenn ein Nutzer den Parameter neu konfiguriert .

Funktionsspezifikation
function
String
(erforderlich)

Name der durch die Aufgabenwarteschlange ausgelösten Funktion, die das Ereignis verarbeitet.

Diese Funktion muss im resources deklariert werden. und taskQueue definiert ist.

processingMessage
String
(erforderlich)
Nachricht, die in der Firebase Console angezeigt wird, während sich die Aufgabe befindet Fortschritt.

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.