Uzantılar bildirimiyle proje yapılandırmalarını yönetin

Bir uzantılar tezahürü, uzatma örneklerinin ve bunların yapılandırmalarının bir listesidir. Manifest ile şunları yapabilirsiniz:

  • Uzantıların yapılandırmanızı başkalarıyla paylaşın
  • Uzantıları yapılandırmanızı farklı projeler arasında kopyalayın (örneğin evreleme projenizden üretim projenize)
  • Tüm uzantılarınızı bir kerede dağıtın
  • Uzantılarınızın Firebase Yerel Emülator Suite'i kullanarak uygulamanızla nasıl çalıştığını test edin
  • Genişletme yapılandırmanızı kaynak kontrolüne taahhüt edin
  • CI/CD boru hattınıza uzantıları ekleyin

Bir uzantının tezahürü iki bölümü vardır:

  • firebase.json Uzatma Sürümü Referansına Örnek Kimliği haritası olan extensions bölümü. Örneğin:

    {
     "extensions": {
       "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
       "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
     }
    }
    
  • Firebase proje dizininizin uzantılarında extensions/ alt dizininde uzantı örneklerinizin her biri için yapılandırmayı içeren .env dosyaları. Örneğin, storage-resize-images bir örneği aşağıdakiler gibi bir .env dosyası olabilir:

    IMAGE_TYPE=jpeg
    LOCATION=us-central1
    IMG_BUCKET=${param:PROJECT_ID}.appspot.com
    IMG_SIZES=100x100
    DELETE_ORIGINAL_FILE=false

Bir uzantılar yaratın

Bir uzantı oluşturmanın üç yolu vardır:

  • Firebase CLI ile tezahür eden uzantılarınızı yönetin
  • Bir Projenin Uzatma Yapılandırmasını Dışa Aktarın
  • Manuel olarak manuel olarak düzenleyin

İlk iki yöntem aşağıda açıklanmıştır.

Firebase CLI ile tezahür eden uzantılarınızı yönetin

Firebase Cli'nin ext: komutlarının çoğunu, projenin geçerli yapılandırmasını gerçekten değiştirmeden tezahürü güncellemek için --local seçeneğiyle çalıştırabilirsiniz.

Örneğin:

firebase ext:install --local firebase/firestore-bigquery-export

Yukarıdaki komutu çalıştırmak, firebase/firestore-bigquery-export uzantısının en son sürümünü yapılandırmanızı ve yapılandırmayı manifestize kaydetmenizi isteyecektir, ancak yapılandırmayı projenize dağıtmaz.

İşte ortaya çıkan uzantıları değiştiren bazı komut örnekleri:

# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local

# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local

# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local 

# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local

Bir Projenin Uzatma Yapılandırmasını Dışa Aktarın

Bir projenin mevcut uzantılar yapılandırmasını manifestize kaydetmek için aşağıdakileri yapın:

  1. Henüz yapmadıysanız, Firebase CLI'yi kurun
  2. Bir kabuk isteminden, proje dizinine geçin. (Proje dizininiz firebase.json dosyasını içerir).
  3. ext:export komutunu çalıştırın:
    firebase ext:export

ext:export komutu, firebase.json dosyasına bir extensions bölümü ekleyecektir. Ek olarak, ext:export komutu, yüklediğiniz her bir uzantı örneği için bir .env dosyası içeren bir extensions dizinini oluşturur. Bu dosyalar her örnek için yapılandırma parametrelerini içerir.

Firebase Local Emulator Suite ile bir uzantılar yapılandırmasını test edin

Uzantılarınıza bazı uzantı örnekleri ekledikten sonra, yerel emülatör paketini kullanarak bunları test edebilirsiniz.

  1. Yerel Emülatör Suite'i kurun ve yapılandırın .

  2. Yerel Emülatör Suite'i başlatın :

    • Emülatör Suite'i etkileşimli bir şekilde çalıştırmak için Run: firebase emulators:start
    • Emülatör Suite'i çalıştırmak ve bir test komut dosyası yürütmek için: firebase emulators:exec my-test.sh

Şimdi, manifestinizde listelenen uzantı örnekleriniz varsa, yerel emülatör paketi bu uzantıların kaynak kodunu ~/.cache/firebase/extensions indirecektir. İndirildikten sonra, yerel emülatör paketi başlayacak ve uzantıların arka plan tetiklenen işlevlerinden herhangi birini tetikleyebilecek ve uygulamanızla entegrasyonlarını test etmek için uygulamanızı emülatör paketine bağlayabileceksiniz.

Bir projeye bir uzantı yapılandırması dağıtım

Uzatma tezahürünüze bazı uzantı örnekleri ekledikten sonra, Firebase CLI'yi kullanarak bir projeye dağıtabilirsiniz. Bir uzantı tezgahıyla konuşlandırdığınızda, manifestteki tüm uzantısı örneklerini bir anda bir projeye yükler, günceller ve yapılandırırsınız.

Bir uzantıyı dağıtmak için:

  1. Bir kabuk isteminden, kaydedilen uzantılar yapılandırmasını içeren dizine değiştirin. (Bu, firebase.json içeren dizindir. ext:export , zaten doğru dizinin içindesiniz.)
  2. deploy komutunu çalıştırın. Uzantıları mevcut olandan başka bir projeye dağıtmak istiyorsanız, aynı zamanda --project= :
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID
    belirtin.

deploy komutu her örnek yapılandırmasını doğrular, firebase.json listelenmeyen hedef projenizden herhangi bir uzantı örnekini silmek isteyip istemediğinizi sorar ve ardından tüm uzantı örneklerinizi dağıtır.

Projeye özgü uzatma yapılandırmaları

Kaydedilen uzantılar yapılandırmaları birden fazla farklı projeye dağıtmak için kullanılabilir: örneğin, bir evreleme projesi ve bir üretim projesi. Bunu yaparken, her proje için bazı parametre değerlerinin farklı olması gerekebilir. Projeye özgü .env dosyaları bunu mümkün kılar:

  • extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID
  • Paylaşılan parametre değerlerini extensions/ EXTENSION_INSTANCE_ID .env .

Bazen, uzantılarınızı taklit ederken farklı bir parametre değeri kullanmak isteyebilirsiniz: Örneğin, üretim yerine bir test API anahtarı sağlamak isteyebilirsiniz. Bu parametreleri .local bir dosyaya koyun:

  • extensions/ EXTENSION_INSTANCE_ID .env.local emülasyon sırasında kullanmak istediğiniz gizli olmayan parametreleri koyun
  • Gizli parametre değerlerini extensions/ EXTENSION_INSTANCE_ID .secret.local