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
- Firebase Local Emulator Suite kullanarak uzantılarınızın uygulamanızla nasıl çalıştığını test edin.
- Uzantı yapılandırmanızı kaynak denetimine kaydetme
- Uzantıları CI/CD ardışık düzeninize dahil etme
Uzantı manifestinin iki bölümü vardır:
firebase.jsondosyanızınextensionsbölümü. Bu bölüm, örnek kimliğinin uzantı sürümü referansıyla 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.envdosyaları. Örneğin,storage-resize-imagesörneğinde aşağıdaki gibi bir.envdosyası olabilir:IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.firebasestorage.app IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
Uzantı manifesti oluşturma
Uzantı manifesti oluşturmanın üç yolu vardır:
- Firebase CLI ile uzantı manifestinizi 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.
Firebase CLI ile uzantı manifestinizi yönetme
Projenin mevcut yapılandırmasını değiştirmeden uzantı manifestini güncellemek için Firebase CLI'ın 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 yeni 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 diğer ö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
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'yı kurun.
- Kabuk isteminden proje dizinine geçin. (Proje dizininiz
firebase.jsondosyasını içerir). ext:exportkomutunu ç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 başlatın:
- Emulator Suite'i etkileşimli olarak çalıştırmak için şu komutu çalıştırın:
firebase emulators:start - Emulator Suite'i ve bir test komut dosyasını çalıştırmak için şu komutu kullanın:
firebase emulators:exec my-test.sh
- Emulator Suite'i etkileşimli olarak çalıştırmak için şu komutu çalıştırın:
Artık manifestinizde listelenen uzantı örnekleriniz varsa Local Emulator Suite, bu uzantıların kaynak kodunu ~/.cache/firebase/extensions dizinine indirir. İndirme işlemi tamamlandıktan sonra Local Emulator Suite başlatılır. Uzantıların arka planda tetiklenen işlevlerinden herhangi birini tetikleyebilir ve uygulamanızla entegrasyonlarını test etmek için uygulamanızı Emulator Suite'e bağlayabilirsiniz.
Uzantı yapılandırmasını bir projeye dağıtma
Uzantı manifestinize bazı uzantı örnekleri ekledikten sonra Firebase CLI'yı kullanarak bunları bir projeye dağıtabilirsiniz. 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.
Uzantı manifestini dağıtmak için:
- Kabuk isteminden, kaydedilen uzantı yapılandırmasını içeren dizine geçin. (Bu,
firebase.jsondosyasını içeren dizindir.ext:exportkomutunu yeni çalıştırdıysanız zaten doğru dizindesinizdir.) deploykomutunu çalıştırın. Uzantıları mevcut proje dışında bir projeye dağıtmak istiyorsanız--project=parametresini de belirtin:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
deploy komutu, her örnek yapılandırmasını doğrular, hedef projenizden firebase.json içinde listelenmeyen uzantı örneklerini silmek isteyip istemediğinizi sorar ve ardından tüm uzantı örneklerinizi dağıtır.
Projeye özgü uzantı yapılandırmaları
Kaydedilen 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 ö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_IDdosyasına ekleyin. - Paylaşılan parametre değerlerini
extensions/EXTENSION_INSTANCE_ID.enviçine yerleştirin.
Bazen uzantılarınızı emüle ederken farklı bir parametre değeri kullanmak isteyebilirsiniz. Örneğin, üretim API anahtarı yerine test API anahtarı sağlamak isteyebilirsiniz. Bu parametreleri bir .local dosyasına yerleştirin:
- Öykünme sırasında kullanmak istediğiniz gizli olmayan parametreleri
extensions/EXTENSION_INSTANCE_ID.env.localiçine yerleştirin. - Gizli parametre değerlerini
extensions/EXTENSION_INSTANCE_ID.secret.localiçine yerleştirin.