Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

Bir uzantı bildirimi, uzantı örneklerinin ve bunların yapılandırmalarının bir listesidir. Manifesto 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ırlama projenizden üretim projenize)
  • Tüm uzantılarınızı aynı anda dağıtın
  • Firebase Local Emulator Suite'i kullanarak uzantılarınızın uygulamanızla nasıl çalıştığını test edin
  • Uzantı yapılandırmanızı kaynak denetimine tabi tutun
  • CI/CD işlem hattınıza uzantıları dahil edin

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

  • Örnek kimliği ile uzantı sürümü referansının bir haritası olan 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, uzantı örneklerinizin her biri için yapılandırmayı içeren .env dosyaları. Örneğin, storage-resize-images örneğinin bir .env dosyası aşağıdaki gibi olabilir:

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

Bir uzantı bildirimi oluşturun

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

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

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

Firebase CLI ile uzantı bildiriminizi yönetin

Firebase CLI'nin ext: komutlarının çoğunu --local seçeneğiyle çalıştırarak, projenin mevcut yapılandırmasını fiilen değiştirmeden uzantı bildirimini güncelleyebilirsiniz.

Ö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 isteyecektir, 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. Ek olarak, 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.

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

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

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

  2. Local 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ı yürütmek için şunu çalıştırın: firebase emulators:exec my-test.sh

Şimdi, manifest dosyanızda uzantı örnekleri listeleniyorsa, Local Emulator Suite bu uzantıların kaynak kodunu ~/.cache/firebase/extensions konumuna indirecektir. İndirildikten sonra Local Emulator Suite 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, Firebase CLI'yi kullanarak bunu bir projeye dağıtabilirsiniz. Bir uzantı bildirimi ile dağıttığınızda, bildirimdeki tüm uzantı örneklerini aynı anda 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 komutunu çalıştırdıysanız zaten doğru dizindesiniz demektir.)
  2. deploy komutunu çalıştırın. Uzantıları mevcut projeden farklı bir projeye dağıtmak istiyorsanız --project= :
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID
    de belirtin.

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

Projeye özgü uzantı yapılandırmaları

Kaydedilmiş uzantı yapılandırmaları, birden çok 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 özgü .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
  • extensions/ EXTENSION_INSTANCE_ID .env paylaşılan parametre değerlerini koyun.

Bazen, uzantılarınızı taklit ederken farklı bir parametre değeri kullanmak isteyebilirsiniz: örneğin, üretim anahtarı 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 koyun