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

Uzantılar emülatörünü uygulamanızla kullanmadan önce, genel Firebase Local Emulator Suite iş akışını anladığınızdan ve yerel emülatör süitini kurup yapılandırdığınızdan ve CLI komutlarını gözden geçirdiğinizden emin olun.

Bu kılavuz ayrıca Firebase uzantılarına ve bunların Firebase uygulamalarınızda nasıl kullanılacağına aşina olduğunuzu varsayar.

Uzantılar emülatörü ile ne yapabilirim?

Uzantılar emülatörü ile, uzantıları güvenli bir yerel ortamda kurabilir ve yönetebilir ve faturalandırma maliyetlerini en aza indirirken yeteneklerini daha iyi anlayabilirsiniz. Emülatör, bulut firestore emülatörleri, gerçek zamanlı veritabanı, Firebase için bulut depolama, pub/alt ve bulut işlevleri v2'de uygulanan eventArc tetiklenen fonksiyonları kullanarak arka plan olay tetiklenen işlevler dahil olmak üzere uzantınızın işlevlerini yerel olarak çalıştırır.

Bir Firebase Projesi Seçin

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

Kullanılacak projeyi seçmek için, emülatörlere başlamadan önce, çalışma dizininizde CLI Run firebase use . Veya --project bayrağını her emülatör komutuna geçirebilirsiniz.

Yerel Emulator Suite, gerçek Firbase projelerinin ve demo projelerinin emülasyonunu destekler.

Proje tipi Özellikler Emülatörlerle kullanın
Gerçek

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

Gerçek projeler, veritabanı örnekleri, depolama kovaları, işlevler veya bu Firebase projesi için ayarladığınız diğer kaynaklar gibi canlı kaynaklara sahiptir.

Gerçek Firebase projeleriyle çalışırken, desteklenen ürünlerin herhangi biri veya tamamı için emülatörler çalıştırabilirsiniz.

Taklit etmediğiniz ürünler için uygulamalarınız ve kodunuz canlı kaynakla etkileşime girer (veritabanı örneği, depolama kovası, işlev vb.).

Demo

Demo Firebase projesinin gerçek bir Firbase konfigürasyonu ve canlı kaynağı yoktur. Bu projelere genellikle codelabs veya diğer öğreticiler aracılığıyla erişilir.

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

Demo Firebase projeleriyle çalışırken, uygulamalarınız ve kodunuz yalnızca emülatörlerle etkileşime girer. Uygulamanız bir emülatörün çalışmadığı bir kaynakla etkileşime girmeye çalışırsa, bu kod başarısız olur.

Mümkün olan her yerde demo projelerini kullanmanızı öneririz. Faydaları şunları içerir:

  • Daha kolay kurulum, çünkü bir Firebase projesi oluşturmadan emülatörleri çalıştırabilirsiniz
  • Daha güçlü güvenlik, kodunuz yanlışlıkla zulmasız (üretim) kaynakları çağırırsa, veri değişikliği, kullanım ve faturalandırma şansı yoktur
  • SDK yapılandırmanızı indirmek için internete erişmenize gerek olmadığından daha iyi çevrimdışı destek.

Bir uzantıyı kurun ve değerlendirin

Bir uzantının ihtiyaçlarınızı karşılayıp karşılamadığını değerlendirmek için uzantılar emülatörünü kullanmak basittir.

Aşağıdaki iş akışı herhangi bir uzantıyı kapsamakla birlikte, Tetik E-posta ( firestore-send-email ) uzantısıyla ilgilendiğinizi varsayalım. Yerel emülatörlerle çalıştırıldığında, tetikleme e -posta, bulut firestore ve bulut işlevleri emülatörlerini otomatik olarak kullanır.

Yerel olarak bir uzantıyı değerlendirmek için:

  1. Yerel uzantılar tezahürüne uzantıyı ekleyin. Bir uzantılar tezahürü, uzatma örneklerinin ve bunların yapılandırmalarının bir listesidir.

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

    Yukarıdaki komutu çalıştırmak, firebase/firestore-send-email uzantısının en son sürümünü yapılandırmanızı ve yapılandırmayı manifestize kaydetmenizi isteyecektir, ancak yapılandırmayı projenize dağıtmaz. Bu konuda daha fazla bilgi için bkz.

  2. Lokal Emulator Suite'i normal olarak başlatın.

    firebase emulators:start

Şimdi, manifestinizde listelenen firestore-send-email uzantısı örneğini kullanarak, yerel emülatör paketi, bu uzantının kaynak kodunu ~/.cache/firebase/extensions indirecektir. Soures indirildikten sonra, yerel emülatör paketi başlayacak ve uzantının arka plan tetiklenen işlevlerinden herhangi birini tetikleyebilecek ve uygulamanızla entegrasyonlarını test etmek için uygulamanızı yerel emülatör paketine bağlayabileceksiniz.

E -posta belgeleri koleksiyonuna veri eklemek ve tetikleyici e -posta uzantısının gerektirdiği gibi diğer arka uç kaynaklarını ayarlamak için Emulator Suite kullanıcı arayüzü kullanabilirsiniz.

Alternatif olarak, sürekli entegrasyon iş akışları gibi etkileşimli olmayan test ortamları için, diğer adımların yanı sıra gerekli bulut firestore verilerini dolduran ve işlevleri tetikleyen uzantıyı değerlendirmek için bir test komut dosyası yazabilirsiniz. Daha sonra, test komut dosyasını yürütmek için yerel emülatör paketini çağırırsınız:

firebase emulators:exec my-test.sh

Uzantılar emülatörü ile testler üretimden nasıl farklıdır?

Uzantılar emülatörü, uzantıları üretim deneyimine yakından eşleştirecek şekilde test etmenizi sağlar. Ancak, üretim davranışından bazı farklılıklar vardır.

Bulut IAM

Firebase Emulator Suite, IAM ile ilgili herhangi bir davranışa koşmak için çoğaltmaya veya saygı duymaya çalışmaz. Emülatörler, sağlanan Firebase Güvenlik Kurallarına bağlı kalır, ancak IAM'nin normal olarak kullanılacağı durumlarda, örneğin hizmet hesabı ve dolayısıyla izinleri çağıran bulut işlevlerini ayarlamak için emülatör yapılandırılamaz ve geliştirici makinenizdeki küresel olarak kullanılabilir hesabı kullanır, Doğrudan 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 tetiklenen işlevleri, uzantılar için EventArc özel olay tetikleyicileri ve bulut firestore, gerçek zamanlı veritabanı, Firebase için bulut depolama alanı, kimlik doğrulama ve pub/sub için destekler. Diğer tetiklenen işlevleri kullanan uzantıları değerlendirmek için, uzantınızı bir Test Firebase projesine yüklemeniz gerekir.

Sırada ne var?