Uzantı manifesti, uzantı örneklerinin ve yapılandırmalarının listesidir. Manifest ile şunları yapabilirsiniz:
- Uzantı yapılandırmanızı başkalarıyla paylaşma
- Uzantı yapılandırmanızı farklı projeler arasında kopyalama (ör. hazırlık projenizden üretim projenize)
- Tüm uzantılarınızı tek seferde dağıtma
- Uzantılarınızın uygulamanızla nasıl çalıştığını test etmek için Firebase Local Emulator Suite
- Uzantı yapılandırmanızı kaynak denetimine gönderme
- CI/CD ardışık düzeninize uzantı ekleme
Uzantı manifesti iki bölümden oluşur:
firebase.json
öğenizinextensions
bölümü. Bu bölüm, örnek kimliği ile uzantı sürümü referansının bir eşlemesidir. Ö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 birinin yapılandırmasını içeren.env
dosyaları. Örneğin,storage-resize-images
örneğinde aşağıdaki 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
Uzantı manifesti oluşturma
Uzantı manifesti oluşturmanın üç yolu vardır:
- Uzantı manifestinizi Firebase CLI ile yönetme
- Projenin uzantı yapılandırmasını dışa aktarma
- Manifest dosyalarını manuel olarak düzenleme
İlk iki yöntem aşağıda açıklanmıştır.
Uzantı manifestinizi Firebase CLI ile yönetme
Projenin mevcut yapılandırmasını değiştirmeden uzantı manifestini 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ırdığınızda firebase/firestore-bigquery-export
uzantısının en son sürümünü yapılandırmanız ve yapılandırmayı manifest dosyasına kaydetmeniz istenir ancak yapılandırma projenize dağıtılmaz.
Uzantı manifestini değiştiren komutlara dair bazı örnekleri aşağıda bulabilirsiniz:
# 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 mevcut uzantı yapılandırmasını manifest dosyasına kaydetmek için aşağıdakileri yapın:
- Henüz yapmadıysanız Firebase CLI'yi kurun.
- Kabuk isteminden proje dizine geçin. (Proje dizininizde
firebase.json
dosyası bulunuyor.) ext:export
komutunu çalıştırın:firebase ext:export
ext:export
komutu, firebase.json
dosyasına bir extensions
bölümü ekler. 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 bir örneğin yapılandırma parametrelerini içerir.
Firebase Local Emulator Suite ile uzantı yapılandırmasını test etme
Uzantı manifestinize bazı uzantı örnekleri ekledikten sonra bunları Local Emulator Suite kullanarak test edebilirsiniz.
Local Emulator Suite'i başlatın:
- Emulator Suite'i etkileşimli olarak çalıştırmak için:
firebase emulators:start
- Emulator Suite'i çalıştırmak ve bir test komut dosyasını yürütmek için şunları çalıştırın:
firebase emulators:exec my-test.sh
- Emulator Suite'i etkileşimli olarak çalıştırmak için:
Manifestinizde listelenen uzantı örnekleriniz varsa Local Emulator Suite, bu uzantıların kaynak kodunu ~/.cache/firebase/extensions
'a indirir. İndirildikten sonra Local Emulator Suite başlayacak ve uzantıların arka planda tetiklenen işlevlerinden herhangi birini tetikleyebilecek, uygulamanızı Emulator paketine bağlayarak uygulamanızla entegrasyonlarını test edebileceksiniz.
Bir uzantı yapılandırmasını projeye dağıtma
Uzantı manifestinize bazı uzantı örnekleri ekledikten sonra Firebase CLI'yi kullanarak uzantıyı bir projeye dağıtabilirsiniz. Uzantıların manifest dosyasıyla dağıttığınızda, manifest dosyasında bulunan tüm uzantı örneklerini bir projeye aynı anda yükler, günceller ve yapılandırırsınız.
Uzantı manifestini dağıtmak için:
- Kabuk isteminden, kayıtlı uzantı yapılandırmasını içeren dizine gidin. (Bu,
firebase.json
dosyasını içeren dizindir.ext:export
dosyasını çalıştırdıysanız doğru dizindesiniz demektir.) deploy
komutunu çalıştırın. Uzantıları mevcut proje dışında bir projeye dağıtmak istiyorsanız--project=
değerini de belirtin:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
deploy
komutu her bir örnek yapılandırmasını doğrular, hedef projenizde firebase.json
içinde listelenmeyen uzantı örneklerini silmek isteyip istemediğinizi sorar ve ardından tüm uzantı örneklerini dağıtır.
Projeye özel uzantı yapılandırmaları
Kayıtlı uzantı yapılandırmaları, birden fazla farklı projeye (ör. hazırlık projesi ve üretim projesi) dağıtmak için kullanılabilir. 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ı olan parametre değerlerini
extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
alanına koyun - Paylaşılan parametre değerlerini
extensions/EXTENSION_INSTANCE_ID.env
içine koyun.
Bazen uzantılarınızı taklit ederken farklı bir parametre değeri kullanmak isteyebilirsiniz. Örneğin, üretim API anahtarı yerine test API anahtarı sağlamak isteyebilirsiniz. Aşağıdaki parametreleri bir .local
dosyasına koyun:
- Emülasyon sırasında kullanmak istediğiniz gizli olmayan parametreleri
extensions/EXTENSION_INSTANCE_ID.env.local
- Gizli parametre değerlerini
extensions/EXTENSION_INSTANCE_ID.secret.local
içine koyun