Parameter sind der Mechanismus, mit dem ein Nutzer jede installierte Instanz einer Erweiterung anpassen kann. Parameter sind wie die Umgebungsvariablen für eine Erweiterung. Die Werte für Parameter können entweder automatisch ausgefüllt werden (von Firebase nach der Installation bereitgestellt) oder vom Nutzer konfiguriert werden (vom Nutzer während der Installation angegeben).
Sie können in Ihrem Quellcode der Erweiterungsfunktionen
, in der Datei extension.yaml und in der Datei POSTINSTALL.md
auf diese Parameter verweisen. Hier ist die Syntax für den Verweis auf einen Parameter namens
PARAMETER_NAME:
Verwenden Sie im Quellcode Ihrer Funktionen das
paramsModul (z. B.params.defineInt("PARAMETER_NAME")) oderprocess.env.PARAMETER_NAME.Verwenden Sie in
extension.yamlundPOSTINSTALL.mddie Syntax${param:PARAMETER_NAME}.Nach der Installation werden in der Firebase Console die Inhalte der
POSTINSTALL.mdDatei angezeigt und alle Parameterverweise mit den tatsächlichen Werten für die installierte Instanz ausgefüllt.
Automatisch ausgefüllte Parameter
Jede installierte Instanz einer Erweiterung hat automatisch Zugriff auf mehrere standardmäßige automatisch ausgefüllte Parameter, die von Firebase bereitgestellt werden (siehe Tabelle unten). Diese Parameterwerte sind entweder die Standardwerte für das Firebase Projekt (z. B. der Standard-Storage-Bucket) oder sie sind spezifisch für die Erweiterung (z. B. die Instanz-ID der Erweiterung).
Alle automatisch ausgefüllten Parameterwerte sind unveränderlich. Sie werden bei der Projekterstellung oder der Installation der Erweiterung festgelegt.
Obwohl Firebase diese Parameterwerte automatisch für die Erweiterung ausfüllt,
Firebase stellt die zugehörigen Produkte während der
Installationnicht automatisch für den Nutzer bereit. Der Nutzer, der die Erweiterung installiert, muss die zugehörigen
und anwendbaren Produkte vor der Installation in seinem Projekt aktivieren. Wenn Ihre Erweiterung beispielsweise Cloud Firestore umfasst, muss der Nutzer Cloud Firestore in seinem Projekt einrichten. Wir empfehlen, Ihre Nutzer in
der PREINSTALL.md
Datei über diese Anforderungen zu informieren.
| Referenz für automatisch ausgefüllte Parameter | Beschreibung | Parameterwert (von Firebase bereitgestellt) |
|---|---|---|
| Parameter mit Standardwerten aus dem Firebase-Projekt | ||
PROJECT_ID |
Eindeutige Kennung für das Firebase-Projekt, in dem die Erweiterung installiert ist |
Allgemeines Format:
Beispielwert: |
DATABASE_URL |
Die URL der Standard Realtime Database Instanz des Firebase-Projekts |
Allgemeines Format:
Beispielwert: |
DATABASE_INSTANCE |
Der Name der Standard Realtime Database Instanz des Firebase-Projekts Normalerweise ist dieser Wert mit der Projekt-ID identisch oder endet mit
|
Allgemeines Format:
Beispielwert: |
STORAGE_BUCKET |
Der Name des Standard-Cloud Storage-Buckets des Firebase-Projekts |
Allgemeines Format:
Beispielwert: |
| Parameter mit Standardwert aus der Erweiterungsinstallation | ||
EXT_INSTANCE_ID |
Eindeutige Kennung für die installierte Erweiterungsinstanz Dieser Wert wird aus dem
|
Allgemeines Format für die erste installierte Instanz (wird automatisch von Firebase zugewiesen; kann während der Installation nicht vom Nutzer geändert werden):
Beispielwert: Allgemeines Format für die zweite und alle weiteren installierten Instanzen
(wird automatisch von Firebase zugewiesen; kann während der Installation vom Nutzer geändert werden):
Beispielwert: |
Benutzerdefinierte Parameter
Wenn Sie es einem Nutzer ermöglichen möchten, jede installierte Instanz einer Erweiterung anzupassen, können Sie ihn
auffordern, während der Installation Parameterwerte anzugeben. Um diese
Werte anzufordern, richten Sie die Prompts im Abschnitt params Ihrer extension.yaml
Datei ein.
Hier sehen Sie ein Beispiel für einen params Abschnitt, gefolgt von einer Tabelle mit allen verfügbaren
Parameterfeldern.
# extension.yaml
...
# Parameters (environment variables) for which the user specifies values during installation
params:
- param: DB_PATH
label: Realtime Database path
description: >-
What is the Realtime Database path where you will write new text
for sentiment analysis?
type: string
validationRegex: ^\S+$
validationErrorMessage: Realtime Database path cannot contain spaces.
example: path/to/posts
required: true
- param: TEXT_KEY
label: Key for text
description: What is the name of the key that will contain text to be analyzed?
type: string
default: textToAnalyze
required: true
Verwenden Sie im Abschnitt params der Datei extension.yaml die folgenden Felder, um einen benutzerdefinierten Parameter zu definieren:
| Feld | Typ | Beschreibung | ||||
|---|---|---|---|---|---|---|
param(erforderlich) |
String | Name des Parameters | ||||
label(erforderlich) |
String |
Kurze Beschreibung des Parameters Wird dem Nutzer angezeigt, wenn er nach dem Wert des Parameters gefragt wird |
||||
description(optional) |
String |
Detaillierte Beschreibung des Parameters Wird dem Nutzer angezeigt, wenn er nach dem Wert des Parameters gefragt wird Unterstützt Markdown | ||||
type(optional) |
String |
Eingabemechanismus, mit dem der Nutzer den Wert des Parameters festlegt (z. B. Text direkt eingeben oder aus einer Drop-down-Liste auswählen) Gültige Werte sind:
Wenn dieses Feld weggelassen wird, wird für den Parameter standardmäßig |
||||
options(erforderlich, wenn der Parameter type
select oder multiSelect ist)
|
Liste |
Liste der Werte, aus denen der Nutzer auswählen kann Fügen Sie die Felder
Das Feld |
||||
resourceType(erforderlich, wenn der Parameter type
selectResource ist)
|
String |
Der Typ der Firebase-Ressource, die der Nutzer auswählen soll. Derzeit unterstützen nur Cloud Storage Buckets Ressourcenauswahlen:
Unbekannte |
||||
example(optional) |
String |
Beispielwert für den Parameter |
||||
validationRegex(optional) (gilt nur, wenn der Parameter type ist
string)
|
String |
Regulärer Ausdruck für die Validierung des benutzerdefinierten Werts des Parameters Der reguläre Ausdruck wird mit der Go-Bibliothek RE2 kompiliert. Weitere Informationen zur Validierung finden Sie unten unter Validierung und Fehlermeldungen. |
||||
validationErrorMessage(optional) |
String |
Fehlermeldung, die angezeigt wird, wenn die
Weitere Informationen zu Fehlermeldungen finden Sie unten unter Validierung und Fehlermeldungen. |
||||
default(optional) |
String |
Standardwert für den Parameter, wenn der Nutzer den Wert des Parameters leer lässt Falls zutreffend, können Sie einen
automatisch ausgefüllten Parameter Wert
für den |
||||
required(optional) |
Boolescher Wert |
Definiert, ob der Nutzer einen leeren String senden kann, wenn er nach dem Wert des Parameters gefragt wird Wenn |
||||
immutable(optional) |
Boolescher Wert |
Definiert, ob der Nutzer den Wert des Parameters nach der Installation ändern kann (z. B. wenn er die Erweiterung neu konfiguriert ) Wenn
Hinweis: Wenn Sie einen Parameter vom Typ
„Standort“
für die bereitgestellten Funktionen Ihrer Erweiterung definieren,
sollten Sie dieses Feld |
Validierung und Fehlermeldungen für benutzerdefinierte Werte
Wenn Sie einen Parameter mit dem type vom Typ string einrichten, müssen Sie
eine entsprechende Regex-Validierung über das Feld des Parameters
validationRegex definieren.
Außerdem ist für viele Erweiterungen ein häufig angeforderter Parameterwert ein Datenbank pfad oder Cloud Storage Bucket. Beachten Sie, dass der Extensions Dienst während der Installation, Neukonfiguration oder Aktualisierung die folgenden Werte zum Zeitpunkt der Parameterwert-Eingabe nicht validiert:
- Ob die angegebene Datenbank oder der angegebene Cloud Storage Bucket im Firebase-Projekt des Nutzers eingerichtet ist
- Ob der angegebene Datenbankpfad in der Datenbank des Nutzers vorhanden ist
Wenn die Erweiterung jedoch tatsächlich ihre Ressourcen bereitstellt, wird in der Firebase Konsole oder der Firebase CLI eine Fehlermeldung angezeigt, wenn die referenzierte Datenbank oder der Cloud Storage Bucket noch nicht im Projekt eingerichtet ist.
Wir empfehlen dringend, dass Sie Nutzer in der
PREINSTALL Datei
über diese Anforderungen informieren, damit die Installation Ihrer Erweiterung
erfolgreich ist und sie wie erwartet funktioniert.
Systemparameter
Systemparameter steuern die grundlegende Konfiguration der Ressourcen einer Erweiterung. Da sie zur Steuerung der Ressourcenkonfiguration dienen, sind sie nicht als Umgebungsvariablen im Funktionscode verfügbar.
Normalerweise müssen Sie für diese Parameter in
extension.yaml nichts deklarieren.
Sie werden automatisch für jede Erweiterungsinstanz definiert,
und Nutzer haben die Möglichkeit, benutzerdefinierte Werte festzulegen, wenn sie Ihre
Erweiterung installieren.
Wenn Ihre Erweiterung jedoch spezielle Ressourcenanforderungen hat,
können Sie in extension.yaml bestimmte Werte auf Ressourcenebene festlegen.
Diese Konfigurationseinstellungen pro Ressource überschreiben die Einstellungen des Nutzers für die gesamte Erweiterungs
instanz.
Beispiel:
resources:
- name: high_memory_function
type: firebaseextensions.v1beta.function
description: >-
This function needs at least 1GB of memory!
properties:
httpsTrigger: {}
runtime: nodejs18
availableMemoryMb: 1024
- name: normal_function
type: firebaseextensions.v1beta.function
description: >-
This function has no special memory requirements. It will use the
default value, or the value of `firebaseextension.v1beta.function/memory`
properties:
httpsTrigger: {}
runtime: nodejs18
Die verfügbaren Systemparameter sind:
| Name | Label (nutzerfreundlich) | Entsprechendes Feld in properties |
Beschreibung |
|---|---|---|---|
| firebaseextensions.v1beta.function/location | Standort | location |
In welcher Region sollen Cloud Functions bereitgestellt werden? |
| firebaseextensions.v1beta.function/memory | Funktionsspeicher | memory |
Wie viele Megabyte Arbeitsspeicher sollen jeder Funktion zugewiesen werden? |
| firebaseextensions.v1beta.function/timeoutSeconds | Zeitlimit für Funktion | timeout |
Nach wie vielen Sekunden sollen Funktionen das Zeitlimit überschreiten? |
| firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Ausgehender VPC-Traffic | vpcConnectorEgressSettings |
Steuert den ausgehenden Traffic, wenn ein VPC-Connector konfiguriert ist |
| firebaseextensions.v1beta.function/vpcConnector | VPC-Connector | vpcConnector |
Verbindet Cloud Functions mit dem angegebenen VPC-Connector. |
| firebaseextensions.v1beta.function/minInstances | Mindestanzahl von Funktionsinstanzen | minInstances |
Die Mindestanzahl von Instanzen dieser Funktion, die gleichzeitig ausgeführt werden sollen |
| firebaseextensions.v1beta.function/maxInstances | Maximale Anzahl von Funktionsinstanzen | maxInstances |
Die maximale Anzahl von Instanzen dieser Funktion, die gleichzeitig ausgeführt werden sollen |
| firebaseextensions.v1beta.function/ingressSettings | Einstellungen für eingehenden Traffic | ingressSettings |
Steuert, woher eingehender Traffic akzeptiert wird |
| firebaseextensions.v1beta.function/labels | Labels | labels |
Labels, die auf alle Ressourcen in der Erweiterung angewendet werden sollen |