Uzantı manifesti, uzantı örneklerinin ve bunların 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ırlama 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 gönderme
- CI/CD ardışık düzeninize uzantılar ekleme
Uzantı manifesti iki bölümden oluşur:
extensions
bölümü,firebase.json
dosyanızın bir parçasıdır. Bu bölüm, örnek kimliğinin uzantı sürümü referansıyla eşlendiği bir haritadır. Örneğin:{ "extensions": { "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18", "my-image-resizer": "firebase/storage-resize-images@^0.1.22", } }
Firebase projesi 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}.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
Firebase CLI'nın ext:
komutlarının çoğunu --local
seçeneğiyle çalıştırarak uzantı manifestini projenin mevcut yapılandırmasını değiştirmeden güncelleyebilirsiniz.
Ö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ı manifeste kaydetmeniz istenir ancak yapılandırma projenize dağıtılmaz.
Uzantı manifestini değiştiren komutlara dair başka ö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ı manifeste kaydetmek için aşağıdakileri yapın:
- Henüz yapmadıysanız Firebase CLI'yi ayarlayın.
- Bir kabuk isteminden proje dizinine 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 ö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 Local Emulator Suite kullanarak bunları test edebilirsiniz.
Local Emulator Suite'yi yükleyip yapılandırın.
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 ç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
- 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
konumuna indirir. İndirildikten sonra Local Emulator Suite başlar ve Local Emulator Suite uzantılarının arka planda tetiklenen işlevlerini tetikleyebilir, uygulamayla entegrasyonlarını test etmek için uygulamanızı Emulator Suite'e bağlayabilirsiniz.
Bir projeye uzantı yapılandırması dağıtma
Uzantı manifestinize bazı uzantı örnekleri ekledikten sonra Firebase CLI'yı kullanarak manifesti bir projeye dağıtabilirsiniz. Uzantılar manifestiyle dağıtım yaptığınızda manifestteki tüm uzantı örneklerini aynı anda bir projeye yükler, günceller ve yapılandırırsınız.
Uzantı manifesti dağıtmak için:
- Bir kabuk isteminden, kaydedilmiş uzantı yapılandırmasını içeren dizine geçin. (Bu,
firebase.json
öğesini içeren dizindir.ext:export
komutunu yeni çalıştırdıysanız doğru dizindesiniz demektir.) deploy
komutunu çalıştırın. Uzantıları mevcut proje dışında bir projede dağıtmak istiyorsanız--project=
değerini de belirtin:firebase deploy --only extensions –-project=
YOUR_PROJECT_ID
deploy
komutu, her örnek yapılandırmasını doğrular, firebase.json
içinde listelenmeyen hedef projenizdeki uzantı örneklerini silmek isteyip istemediğinizi sorar ve ardından tüm uzantı örneklerinizi dağıtır.
Projeye özel uzantı yapılandırmaları
Kaydedilen uzantı yapılandırmaları, birden fazla farklı projeye (ör. hazırlık projesi ve üretim projesi) dağıtım yapmak için kullanılabilir. Bu işlemi yaparken bazı parametre değerlerinin her proje için farklı olması gerekebilir.
Proje dosyaları .env
sayesinde bu mümkün olur:
- Projeler arasında farklılık gösteren parametre değerlerini
extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
içine yerleştirin. - 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 anahtarı yerine test API anahtarı sağlamak isteyebilirsiniz. Bu parametreleri bir .local
dosyasına yerleştirin:
- Emülasyon sırasında kullanmak istediğiniz gizli olmayan parametreleri
extensions/EXTENSION_INSTANCE_ID.env.local
içine yerleştirin. - Gizli parametre değerlerini
extensions/EXTENSION_INSTANCE_ID.secret.local
içine yerleştirin.