欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

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

Uzantı bildirimi , uzantı örneklerinin ve 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ırlama 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ızla nasıl çalıştığını test edin
  • Uzantı yapılandırmanızı kaynak denetimine teslim edin
  • Uzantıları CI/CD ardışık düzeninize dahil edin

Bir uzantı manifestosu iki bölümden oluşur:

  • Örnek kimliğinin uzantı sürümü referansına eşlemesi olan firebase.json 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",
     }
    }
    
  • .env proje dizininizin extensions/ alt dizininde, uzantı örneklerinizin her biri için yapılandırmayı içeren .env dosyaları. Örneğin, storage-resize-images bir örneği, aşağıdakine benzer 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

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 aktarın
  • 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, projenin mevcut yapılandırmasını gerçekten değiştirmeden uzantı bildirimini güncellemek için --local seçeneğiyle çalıştırabilirsiniz.

Örneğin:

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

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

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 aktarın

Bir projenin mevcut 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ü ekler. 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.

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

Uzantı bildiriminize bazı uzantı örnekleri ekledikten sonra, bunları Yerel Öykünücü Paketi'ni kullanarak test edebilirsiniz.

  1. Local Emulator Suite'i kurun 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ını çalıştırmak için şunu çalıştırın: firebase emulators:exec my-test.sh

Şimdi, bildiriminizde listelenen uzantı örnekleriniz varsa, Local Emulator Suite bu uzantıların kaynak kodunu ~/.cache/firebase/extensions . Bunlar indirildikten sonra Local Emulator Suite başlayacak ve uzantıların arka planda tetiklenen işlevlerinden herhangi birini tetikleyebilecek ve uygulamanızla entegrasyonunu test etmek için uygulamanızı Emulator paketine bağlayabileceksiniz.

Bir projeye uzantı yapılandırması dağıtın

Uzantı bildiriminize bazı uzantı örnekleri ekledikten sonra, bunu Firebase CLI'yi kullanarak 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ı bildirimi dağıtmak için:

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

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

Projeye özel uzantı yapılandırmaları

Kaydedilen 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 her proje için bazı parametre değerlerinin 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 koyun.

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

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