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, uzantı için ortam değişkenleri gibidir. 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 olur.

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 veya uzantıya özgüdür (ör. default Storage paketi) uzantının örnek kimliğini girin).

Otomatik olarak doldurulan tüm parametre değerleri sabittir. Bu ayarlar, proje oluşturulurken veya uzantı yüklenirken belirlenir.

Firebase, uzantı için bu parametre değerlerini otomatik olarak doldursa da Firebase, kurulum sırasında ilişkili ürünleri kullanıcı için otomatik olarak sağlamaz. Uzantıyı yükleyen kullanıcı, yüklemeden önce projelerinde ilişkili ve geçerli ürünleri etkinleştirmelidir. Örneğin, uzantınız Cloud Firestore içeriyorsa kullanıcının projelerinde Cloud Firestore'yi ayarlaması gerekir. Kullanıcılarınızı bu gereksinimlerle ilgili olarak bilgilendirmenizi öneririz: PREINSTALL.md dosyası olduğundan emin olun.

Otomatik olarak doldurulan 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 ile biter.

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.

İlk yüklenen örnek için genelleştirilmiş biçim (Firebase tarafından otomatik olarak atanır; yükleme sırasında 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ılan 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 bir params bölümü örneği ve ardından mevcut tüm parametre alanlarını açıklayan bir tablo verilmiştir.

# 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 şunlardır:

  • string: Serbest biçimli metin girişine izin verir ( sizin validationRegex)
  • select: ö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: Kullanıcının projesinden belirli bir Firebase kaynağı türünün (ör. Cloud Storage paketi) seçilmesine olanak tanır.

    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 Cloud Secret Manager'da depolanır.

    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 select veya multiSelect ise gereklidir)
list

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

label ve value alanlarını options alanı:

  • label (dize): Seçilebilir seçeneğin kısa açıklaması
  • value (dize): seçilebilir seçenek

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

resourceType
(type parametresi selectResource ise zorunludur)
dize

Kullanıcıdan seçmesini isteyeceğiniz Firebase kaynağı türü. Şu anda kaynak seçicileri yalnızca Cloud Storage paket desteklemektedir:

Kaynak türü Tür Kimliği
Cloud Storage paket 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 iletişim bilgileri bölümüne bakın.

default
(isteğe bağlı)
dize

Kullanıcı, parametrenin varsayılan değerinden ayrılırsa değer boş

Geçerliyse 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 Extensions hizmeti, aşağıdaki bilgileri doğrulamaz 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 konsolunda veya Firebase CLI, şu durumlarda hata mesajı gösterir: başvurulan veritabanı veya Cloud Storage paketi henüz projede 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şkeni olarak erişilemezler.

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.fonksiyon/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ıştırılması gereken 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 edileceğini kontrol eder.
firebaseextensions.v1beta.function/labels Etiketler labels Uzantıdaki tüm kaynaklara uygulanacak etiketler