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

Uzantı bildirimi, uzantı örneklerinin ve bunların yapılandırmalarının bir listesidir. Manifest ile şunları yapabilirsiniz:

  • Uzantı yapılandırmanızı başkalarıyla paylaşın
  • Uzantı yapılandırmanızı farklı projeler arasında kopyalayın (örneğin, hazırlık projenizden üretim projenize)
  • Tüm uzantılarınızı tek seferde dağıtın
  • Firebase Local Emulator Suite'i kullanarak uzantılarınızın uygulamanızda nasıl çalıştığını test edin
  • Uzantı yapılandırmanızı kaynak kontrolüne kaydedin
  • Uzantıları CI/CD ardışık düzeninize ekleyin

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

  • Örnek kimliğinin uzantı sürümü referansına eşlendiği firebase.json dosyanızın 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 extensions/ alt dizininde, her bir uzantı örneğinizin yapılandırmasını içeren .env dosyaları. Örneğin, storage-resize-images bir örneği aşağıdaki gibi bir .env dosyasına sahip olabilir:

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

Uzantı bildirimi oluşturma

Uzantı bildirimi oluşturmanın üç yolu vardır:

  • Uzantı bildiriminizi Firebase CLI ile yönetin
  • Bir projenin uzantı yapılandırmasını dışa aktarma
  • Bildiri dosyalarını manuel olarak düzenleyin

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

Uzantı bildiriminizi Firebase CLI ile yönetin

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

Örneğin:

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

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

Uzantı bildirimini değiştiren bazı komut örnekleri aşağıda verilmiştir:

# 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 uzantı yapılandırmasını dışa aktarma

Bir projenin geçerli uzantı yapılandırmasını bildirime 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. Ayrıca ext:export komutu, yüklediğiniz her uzantı örneği için bir .env dosyası içeren bir extensions dizini oluşturur. Bu dosyalar her örnek için yapılandırma parametrelerini içerir.

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

Uzantı bildiriminize bazı uzantı örnekleri ekledikten sonra bunları Local Emulator Suite'i kullanarak test edebilirsiniz.

  1. Local Emulator Suite'i yükleyin ve yapılandırın .

  2. Yerel Emulator Suite'i başlatın :

    • Emulator Suite'i etkileşimli olarak çalıştırmak için şunu çalıştırın: firebase emulators:start
    • Emulator Suite'i çalıştırmak ve bir test komut dosyasını yürütmek için şunu çalıştırın: firebase emulators:exec my-test.sh

Artık bildiriminizde listelenen uzantı örnekleriniz varsa, Local Emulator Suite bu uzantıların kaynak kodunu ~/.cache/firebase/extensions konumuna indirecektir. İndirildikten sonra, Yerel Emulator Paketi başlayacak ve uzantıların arka planda tetiklenen işlevlerinden herhangi birini tetikleyebilecek ve uygulamanızla entegrasyonlarını test etmek için uygulamanızı Emulator paketine bağlayabileceksiniz.

Bir projeye uzantı yapılandırması dağıtma

Uzantı bildiriminize bazı uzantı örnekleri ekledikten sonra bunu Firebase CLI'yi kullanarak bir projeye dağıtabilirsiniz. Bir uzantı manifestiyle dağıtım yaptığınızda, manifestteki tüm uzantı örneklerini tek seferde bir projeye yükler, günceller ve yapılandırırsınız.

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

  1. Bir kabuk isteminden kayıtlı uzantı yapılandırmasını içeren dizine geçin. (Bu, firebase.json dosyasını içeren dizindir. ext:export yeni çalıştırdıysanız, zaten doğru dizindesiniz.)
  2. deploy komutunu çalıştırın. Uzantıları mevcut proje dışında bir projeye dağıtmak istiyorsanız şunu da belirtin --project= :
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

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

Projeye özel uzantı konfigürasyonları

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

  • Projeler arasında farklılık gösteren parametre değerlerini extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID
  • Paylaşılan parametre değerlerini extensions/ EXTENSION_INSTANCE_ID .env içine yerleştirin.

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

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