Uzantınızda parametreleri ayarlayın ve kullanın

Parametreler, kullanıcının yüklenen her bir öğeyi özelleştirdiği mekanizmadır örneğidir. Parametreler, bir öğenin ortam değişkenlerine benzer. uzantısına sahip olur. Parametre değerleri şunlardan biri olabilir: auto-fill (Firebase tarafından şu tarihten sonra sağlanır: veya kullanıcı tarafından yapılandırılmış (kullanıcı tarafından kullanıcı).

Bu parametreleri, uzantınızın işlevleri kaynak kodu, extension.yaml dosyanız ve POSTINSTALL.md dosyası olarak kaydedebilirsiniz. Şu ada sahip bir parametreye referans vermek için kullanılacak söz dizimini PARAMETER_NAME:

  • İşlevlerinizin kaynak kodunda, params modülü (örneğin, params.defineInt("PARAMETER_NAME")) veya process.env.PARAMETER_NAME.

  • extension.yaml ve POSTINSTALL.md içinde şunu kullanın: ${param:PARAMETER_NAME}.

    Yükleme işleminden sonra Firebase konsolunda POSTINSTALL.md dosyasını açar ve tüm parametre referanslarını gerçek değerlere sahip olduğundan emin olun.

Otomatik olarak doldurulan parametreler

Bir uzantının yüklenen her örneği otomatik olarak birçok Firebase tarafından sağlanan varsayılan otomatik olarak doldurulan parametreler (tabloya bakın bölümüne bakın). Bu parametre değerleri, Firebase için varsayılan değerlerdir (default Storage paketi gibi) ya da uzantıya özgüdür (ör. uzantının örnek kimliğini girin).

Otomatik olarak doldurulan tüm parametre değerleri sabittir. Bunlar, projenin zamanı veya uzantı yüklemesinden bahsedeceğiz.

Firebase, uzantı için bu parametre değerlerini otomatik olarak doldursa da Firebase, işlem sırasında kullanıcı için ilişkili ürünlerin temel hazırlığını otomatik olarak yapmaz. yükleme başlıklı makaleye bakın. Uzantıyı yükleyen kullanıcı, ilişkili ve geçerli ürünleri) hazır hale getirmektir. Örneğin, Uzantınız Cloud Firestore'u içeriyorsa, kullanıcı Cloud Firestore'u kurma ve belirler. Kullanıcılarınızı bu gereksinimlerle ilgili olarak bilgilendirmenizi öneririz: PREINSTALL.md dosyası olduğundan emin olun.

Otomatik olarak doldurulmuş parametre referansı Açıklama Parametre değeri (Firebase tarafından sağlanır)
Firebase projesindeki varsayılan değerlere sahip parametreler
PROJECT_ID Uzantının yer aldığı Firebase projesinin benzersiz tanımlayıcısı yüklendi

Genelleştirilmiş biçim:
project-id

Örnek değer:
project-123

DATABASE_URL Firebase projesinin varsayılan Realtime Database örneği URL'si

Genelleştirilmiş biçim:
https://project-id-default-rtdb.firebaseio.com
. (ABD örnekleri)
. veya
. https://project-id-default-rtdb.region-code.firebasedatabase.app
. (ABD dışındaki örnekler)

Örnek değer:
https://project-123-default-rtdb.firebaseio.com

DATABASE_INSTANCE

Firebase projesinin varsayılan Realtime Database örneği adı

Genellikle bu değer proje kimliğiyle aynıdır veya -default-rtdb

Genelleştirilmiş biçim:
project-id

Örnek değer:
project-123

STORAGE_BUCKET Firebase projesinin varsayılan Cloud Storage paket adı

Genelleştirilmiş biçim:
project-id.appspot.com

Örnek değer:
project-123.appspot.com

Uzantı yüklemesinden varsayılan değere sahip parametre
EXT_INSTANCE_ID

Yüklü uzantı örneği için benzersiz tanımlayıcı

Bu değer, name alanı extension.yaml dosyasında belirtilir.

1. yüklenen örnek için genel biçim (otomatik olarak atanır) Firebase'den; kullanıcı tarafından değiştirilemez):
name-from-extension.yaml

Örnek değer:
my-awesome-extension


2. yüklenmiş örnek ve üzeri için genel biçim (Firebase tarafından otomatik olarak atanır; kullanıcı tarafından değiştirilebilir sırasında):
name-from-extension.yaml-4-digit-alphanumeric-hash

Örnek değer:
my-awesome-extension-6m31

Kullanıcı tarafından yapılandırılmış parametreler

Kullanıcının bir uzantının yüklenen her örneğini özelleştirmesini sağlamak için kullanıcıdan yükleme sırasında parametre değerlerini belirtmesini isteyebilir. Bunları istemek için değerleri, extension.yaml uygulamanızın params bölümünde istemleri ayarlarsınız dosyası olarak kaydedebilirsiniz.

Aşağıda, örnek bir params bölümü ve ardından, mevcut tüm seçenekleri açıklayan bir tablo yer almaktadır parametresindeki alana girin.

# 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

extension.yaml dosyanızın params bölümünde aşağıdaki alanları kullanın kullanıcı tarafından yapılandırılmış bir parametre tanımlamak için:

Alan Tür Açıklama

param (zorunlu)
dize Parametrenin adı

label (zorunlu)
dize

Parametrenin kısa açıklaması

Parametrenin değer


description (isteğe bağlı)
dize

Parametrenin ayrıntılı açıklaması

Parametrenin değer

Markdown'ı destekler


type (isteğe bağlı)
dize

Kullanıcının parametre değerini nasıl ayarladığına ilişkin giriş mekanizması ( (ör. doğrudan metin girin veya açılır listeden seçin)

Geçerli değerler aşağıdakileri içerir:

  • string: Serbest biçimli metin girişine izin verir ( sizin validationRegex)
  • select: aşağıdan bir girişin seçilmesine izin verir önceden tanımlanmış seçenekler listesidir. Bu değeri belirtirseniz options tanımını da girin.
  • multiSelect: Bir veya daha fazla girişin seçilmesine izin verir önceden tanımlanmış bir seçenek listesinden Bu değeri belirtirseniz options tanımını da girin.
  • selectResource: Belirli bir öğenin seçilmesine izin verir Firebase kaynağının türünü (ör. Cloud Storage paketi) kaldırın.

    Bu türde bir parametre belirlediğinizde kullanıcılar yükleme arayüzünde kullanıcı dostu bir seçim widget'ı; bunun için neden, her zaman selectResource parametrelerini kullanın yapmasını sağlar.

    Bu değeri belirtirseniz resourceType girin.

  • secret: gibi hassas dizelerin depolanmasına izin verir. Üçüncü taraf hizmetler için API anahtarları. Bu değerler şurada saklanır: Cloud Secret Manager.

    Cloud Secret Manager ücretli bir hizmettir. Bu hizmet ve uzantınızı yükleyen kullanıcılardan ücret alınabilir. Şunu kullanıyorsanız: secret parametre türünü belirtiyorsanız ÖN YÜKLEME işleminiz Cloud Secret Manager'ın kullandığı bir dosya oluşturmanız gerekir.

Bu alan atlanırsa parametre varsayılan olarak type olur / string.


options (type parametresi varsa gereklidir select veya multiSelect)
list

Kullanıcının seçim yapabileceği değerlerin listesi

label ve value alanlarını options alanı:

  • label (dize): seçilebilir seçenek
  • value (dize): seçilebilir seçenek

options için value alanı zorunludur. girin.
. label atlanırsa liste seçeneği varsayılan olarak gösterilir value.


resourceType (type parametresi varsa gereklidir (selectResource)
dize

Kullanıcıdan seçim yapmasını istenecek Firebase kaynağının türü. Şu anda kaynak seçicileri yalnızca Cloud Storage paketleri desteklemektedir:

Kaynak türü Tür Kimliği
Cloud Storage paketi storage.googleapis.com/Bucket

Bilinmeyen resourceType değerleri yoksayılır ve kullanıcı arayüzü parametre, serbest biçimli bir string girişi olarak oluşturulur girin.


example (isteğe bağlı)
dize

Parametre için örnek değer


validationRegex (isteğe bağlı)
(yalnızca type parametresi string)
dize

Parametrenin kullanıcı tarafından yapılandırılan değerinin doğrulanması için normal ifade dizesi

Normal ifade, go kitaplığı kullanılarak derlenir: RE2

Doğrulamayla ilgili ayrıntılar için şuraya bakın: Doğrulama ve hata aşağıdaki bölüme bakın.


validationErrorMessage (isteğe bağlı)
dize

validationRegex başarısızlıklar

Hata mesajlarıyla ilgili ayrıntılar için şuraya bakın: Doğrulama ve hata aşağıdaki bölüme bakın.


default (isteğe bağlı)
dize

Kullanıcı, parametrenin değer boş

Geçerliyse, veri analizi için otomatik olarak doldurulan parametre değeri default değeri için (örneğin, IMG_BUCKET Resimleri Yeniden Boyutlandır uzantısını kullanın).


required (isteğe bağlı)
boolean

Kullanıcının boş dize gönderip gönderemeyeceğini tanımlar parametrenin değeri istendi

required atlanırsa bu değer varsayılan olarak true (yani zorunlu bir parametre).


immutable (isteğe bağlı)
boolean

Kullanıcının parametrenin değerini (örneğin, yeniden yapılandır ekleyin)

immutable atlanırsa bu değer varsayılan olarak false.

Not: Bir "konum" parametresini kullanabilirsiniz. parametresine bu immutable alanını dahil etmelisiniz nesnesini tanımlayın.

Kullanıcı tarafından yapılandırılmış değerler için doğrulama ve hata mesajları

string öğesinin type ile bir parametre oluşturduğunuzda, aşağıdakileri tanımlamanız gerekir: parametresinden bağımsız olarak, validationRegex alanına ait verilerin gösterilmesini engelleyebilirsiniz.

Ayrıca birçok uzantı için yaygın olarak istenen bir parametre değeri, yolu veya Cloud Storage paketi olabilir. Yükleme, yeniden yapılandırma veya Uzantılar hizmeti, aşağıdaki bilgileri giriş parametre değerinin zamanı:

  • Belirtilen veritabanının veya Cloud Storage paketinin kullanıcının Firebase projesi
  • Belirtilen veritabanı yolunun kullanıcının veritabanında mevcut olup olmadığı

Ancak uzantı, kaynaklarını gerçekten dağıttığında Firebase konsolu veya Firebase CLI, şu durumlarda hata mesajı gösterir: başvurulan veritabanı veya Cloud Storage paketi projede henüz ayarlanmamış.

Şuradaki kullanıcıları bilgilendirmenizi kesinlikle öneririz: PREINSTALL dosya Böylece, uzantıyı yüklediklerinde düzgün şekilde yüklendiğini ve beklendiği gibi çalıştığını gösterir.

Sistem parametreleri

Sistem parametreleri, bir uzantıya ait kaynakların temel yapılandırmasını kontrol eder. Kaynak yapılandırmasını kontrol etmeleri gerektiğinden, işlev kodunuzdan ortam değişkenleri olarak erişilemez.

Normalde bu parametreler için extension.yaml Her uzantı örneği için otomatik olarak tanımlanırlar. ve kullanıcılar uygulamanızı yüklediklerinde özel değerler ayarlama uzantısına sahip olur.

Ancak uzantınızın özel kaynak gereksinimleri varsa extension.yaml uygulamasında kaynak başına belirli değerler belirleyebilirsiniz. Kaynak başına bu yapılandırma ayarları, kullanıcının uzantısını geçersiz kılar örnek genelinde ayarlar. Örneğin:

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

Kullanılabilir sistem parametreleri şunlardır:

Ad Etiket (insan dostu) properties dilinde karşılık gelen alan Açıklama
firebaseextensions.v1beta.function/konum Konum location Cloud Functions hangi bölgeye dağıtılmalıdır?
firebaseextensions.v1beta.function/bellek İşlev belleği memory Her işlev için kaç megabayt bellek ayrılmalıdır?
firebaseextensions.v1beta.function/timeoutSeconds İşlev zaman aşımı timeout İşlevler zaman aşımına uğramadan önce kaç saniye çalışmalıdır?
firebaseextensions.v1beta.function/vpcConnectorEgressSettings VPC Bağlayıcısı Çıkışı vpcConnectorEgressSettings Bir VPC bağlayıcısı yapılandırıldığında giden trafiği kontrol eder
firebaseextensions.v1beta.function/vpcConnector VPC Bağlayıcısı vpcConnector Cloud Functions'ı belirtilen VPC bağlayıcısına bağlar.
firebaseextensions.v1beta.function/minInstances Minimum işlev örnekleri minInstances Bu işlevin aynı anda çalışacak minimum örnek sayısı
firebaseextensions.v1beta.function/maxInstances Maksimum işlev örneği sayısı maxInstances Bu işlevin aynı anda çalışacak maksimum örnek sayısı
firebaseextensions.v1beta.function/ingressSettings Giriş Ayarları ingressSettings Gelen trafiğin nereden kabul edildiğini kontrol eder
firebaseextensions.v1beta.function/labels Etiketler labels Uzantıdaki tüm kaynaklara uygulanacak etiketler