Uzantıları değerlendirmek için Uzantılar Emülatörü'nü kullanma

Uygulamanızla Extensions emülatörünü kullanmadan önce Firebase Local Emulator Suite iş akışını genel olarak anlarsınız, Ayrıca kurun ve yapılandırdığınız Local Emulator Suite ifadesini tıklayın ve CLI komutlarını inceleyin.

Bu kılavuzda Firebase Extensions hakkında bilgi sahibi olduğunuz da varsayılır. ve bunları Firebase uygulamalarınızda nasıl kullanacağınızı öğrenin.

Extensions emülatörüyle ne yapabilirim?

Extensions emülatörüyle uzantıları tek bir saniyede yükleyip yönetebilirsiniz özelliklerini daha iyi anlamanıza yardımcı olur. faturalandırma maliyetlerine karşılık gelir. Emülatör, aşağıdakiler de dahil olmak üzere uzantınızın işlevlerini yerel olarak çalıştırır: arka plan etkinliği tarafından tetiklenen işlevleri Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication ve Pub/Sub ve Eventarc tarafından tetiklenen işlevler Cloud Functions sürüm 2.

Firebase projesi seçin

Firebase Local Emulator Suite, tek bir Firebase projesi için ürün emülasyonu yapar.

Kullanılacak projeyi seçmek için emülatörleri başlatmadan önce CLI çalıştırmasında Çalışma dizininizde firebase use. Ya da her emülatöre --project işaretini komutuna dokunun.

Local Emulator Suite, gerçek Firebase projelerinin ve demo projeleri.

Proje türü Özellikler Emülatörlerle kullanım
Gerçek

Gerçek bir Firebase projesi, sizin oluşturduğunuz ve yapılandırdığınız (büyük olasılıkla Firebase konsolu üzerinden).

Gerçek projelerde veritabanı örnekleri ve depolama alanı gibi canlı kaynaklar bulunur Firebase için oluşturduğunuz paketler, işlevler veya diğer kaynaklar belirler.

Gerçek Firebase projeleriyle çalışırken tüm işlemler için emülatörler çalıştırabilirsiniz. veya desteklenen tüm ürünler.

emüle etmediğiniz tüm ürünlerde uygulamalarınız ve kodunuz live kaynakla (veri tabanı örneği, depolama alanı) grup, işlev vb.) belirtin.

Demo

Demo Firebase projesinin gerçek bir Firebase yapılandırması yoktur ve canlı kaynak yok. Bu projelere genellikle codelab'ler veya eğiticidir.

Demo projeleri için proje kimlikleri demo- önekine sahiptir.

Demo Firebase projeleriyle çalışırken uygulamalarınız ve kodunuz yalnızca emülatörler aracılığıyla gerçekleştirilir. Uygulamanız bir kaynakla etkileşim kurmaya çalışırsa çalışmadığı durumlarda bu kod başarısız olur.

Mümkün olan her yerde demo projeleri kullanmanızı öneririz. Sunulan avantajlar arasında şunlar sayılabilir:

  • Emülatörleri, herhangi bir kod oluşturmadan da çalıştırabildiğiniz için kurulumu daha kolay Firebase projesi
  • Kodunuz yanlışlıkla emülasyonsuz bir kod çağırırsa daha yüksek güvenlik sağlar (üretim) kaynaklarında, veri değişikliği, kullanım ve faturalandırma ihtimali yoktur.
  • Gerektiğinde internet bağlantısı olmadığında çevrimdışı destek SDK yapılandırmanızı indirin.
ziyaret edin.

Uzantıları yükleme ve değerlendirme

Bir uzantınınExtensions basit bir şekilde ele alacağız.

Tetikleyici E-posta ile ilgilendiğinizi varsayalım (firestore-send-email) uzantı, ancak aşağıdaki iş akışı tüm uzantıları kapsamaktadır. Yerel emülatörlerle çalıştırıldığında, Tetikleyici E-posta adresi, otomatik olarak Cloud Firestore ve Cloud Functions emülatörleri.

Bir uzantıyı yerel olarak değerlendirmek için:

  1. Uzantıyı yerel uzantılar manifest dosyasına ekleyin. Uzantı manifesti uzantı örnekleri ve yapılandırmalarının bir listesi.

    firebase ext:install --local firebase/firestore-send-email

    Yukarıdaki komutu çalıştırdığınızda Search Console'un en son sürümünü firebase/firestore-send-email uzantısını seçin ve yapılandırmayı şuraya kaydedin: ekler ancak yapılandırmayı projenize dağıtmaz. Örneğin, Bu konuda daha fazla bilgi için Manifestlerle uzantı yapılandırmasını yönetme bölümünü inceleyin.

  2. Local Emulator Suite uygulamasını her zamanki gibi başlatın.

    firebase emulators:start

Şimdi şu konumda listelenen firestore-send-email uzantısı örneği kullanılarak: manifest'inizde yer alan Local Emulator Suite, aşağıdaki kaynak kodunu indirir: ~/.cache/firebase/extensions olarak ayarlayacağım. Kaynaklar indirildikten sonra Local Emulator Suite başlar ve şunları yapabilirsiniz: arka planda tetiklenen işlevlerden herhangi birini tetikleyebilir ve uygulamanızı Local Emulator Suite cihazına yükleyin.

E-posta dokümanları koleksiyonuna veri eklemek için Emulator Suite UI kullanabilirsiniz ve Trigger Email uzantısının gerektirdiği diğer arka uç kaynaklarını ayarlayın.

Alternatif olarak, sürekli test gibi etkileşimsiz test ortamları entegrasyon iş akışlarını kullanıyorsanız uzantıyı değerlendirmek üzere bir test komut dosyası diğer adımların yanı sıra gerekli Cloud Firestore verilerini doldurur ve fonksiyonları tetikler. Ardından Local Emulator Suite öğesini çağırırsınız. test komut dosyanızı yürütmek için:

firebase emulators:exec my-test.sh

Extensions emülatörüyle testin üretimden farkı nedir?

Extensions emülatörü, uzantıları yüksek kalitede ve prodüksiyon deneyimiyle örtüşüyor. Ancak, üretim davranışı.

Cloud IAM

Firebase Emulator Suite, verileri kopyalamaya veya ona Çalışma için IAM ile ilgili davranış. Emülatörler Firebase Güvenliği'ne bağlıdır Kurallar sağlanır ancak IAM'nin normalde kullanılacağı durumlarda (ör. Cloud Functions'ın hizmet hesabını ve dolayısıyla izinleri çağırmasını sağlar. emülatörü yapılandırılamaz ve şurada genel olarak mevcut hesabı kullanır: yerel bir komut dosyası çalıştırmaya benzer.

Tetikleme türü sınırlaması

Şu anda Firebase Local Emulator Suite yalnızca HTTP isteği tarafından tetiklenen URL'leri desteklemektedir işlevleri, uzantılar için Eventarc özel etkinlik tetikleyicileri ve arka plan Cloud Firestore, Realtime Database, etkinlik tarafından tetiklenen işlevler Cloud Storage for Firebase, Authentication ve Pub/Sub. Uzantıları değerlendirmek için işlevini kullanan başka bir fonksiyon kullanıyorsanız uzantınızı yükleyin test amaçlı bir Firebase projesi ekleyeceksiniz.

Sonrasında ne olacak?