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

Uygulamanızda Extensions öykünücüsünü kullanmadan önce, genel Firebase Local Emulator Suite iş akışını anladığınızdan ve Local Emulator Suite'i kurup yapılandırdığınızdan ve CLI komutlarını gözden geçirdiğinizden emin olun.

Bu kılavuz aynı zamanda Firebase Uzantıları ve bunları Firebase uygulamalarınızda nasıl kullanacağınız konusunda bilgi sahibi olduğunuzu da varsayar.

Uzantı emülatörüyle ne yapabilirim?

Uzantı öykünücüsüyle, uzantıları güvenli bir yerel ortamda yükleyip yönetebilir ve fatura maliyetlerini en aza indirirken yeteneklerini daha iyi anlayabilirsiniz. Emülatör, Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication ve Pub/Sub için emülatörleri kullanan arka planda olayla tetiklenen işlevler ve Cloud Functions v2'de uygulanan Eventarc tarafından tetiklenen işlevler de dahil olmak üzere uzantınızın işlevlerini yerel olarak çalıştırır.

Firebase projesi seçin

Firebase Local Emulator Suite, tek bir Firebase projesine yönelik ürünleri taklit eder.

Kullanılacak projeyi seçmek için emülatörleri başlatmadan önce, CLI'de çalışma dizininizde firebase use çalıştırın. Veya --project bayrağını her emulator komutuna iletebilirsiniz.

Local Emulator Suite, gerçek Firebase 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 projelerde veritabanı örnekleri, depolama grupları, işlevler veya Firebase projesi için ayarladığınız diğer kaynaklar gibi canlı kaynaklar bulunur.

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

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

Demo

Bir demo Firebase projesinde gerçek bir Firebase yapılandırması ve canlı kaynak yoktur. Bu projelere genellikle codelab'ler veya diğer eğitimler aracılığıyla erişilir.

Demo projelerine ait 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, öykünücünün çalışmadığı bir kaynakla etkileşim kurmaya çalışırsa bu kod başarısız olur.

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

  • Emülatörleri Firebase projesi oluşturmadan çalıştırabileceğiniz için daha kolay kurulum
  • Kodunuzun yanlışlıkla öykünmemiş (üretim) kaynakları çağırması durumunda veri değişikliği, kullanım ve faturalandırma şansı olmayacağı için daha güçlü güvenlik
  • SDK yapılandırmanızı indirmek için internete erişmenize gerek olmadığından daha iyi çevrimdışı destek.

Bir uzantıyı yükleyin ve değerlendirin

Bir uzantının ihtiyaçlarınızı karşılayıp karşılamadığını değerlendirmek için Uzantı öykünücüsünü kullanmak basittir.

Aşağıdaki iş akışı tüm uzantıları kapsasa da, Tetikleyici E-posta ( firestore-send-email ) uzantısıyla ilgilendiğinizi varsayalım. Yerel öykünücülerle çalıştırıldığında, Tetikleyici E-posta otomatik olarak Cloud Firestore ve Cloud Functions öykünücülerinden yararlanacaktır.

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

  1. Uzantıyı yerel uzantı bildirimine ekleyin. Uzantı bildirimi, uzantı ö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 sizden firebase/firestore-send-email uzantısının en son sürümünü yapılandırmanızı ve yapılandırmayı bildirime kaydetmenizi isteyecek, ancak yapılandırmayı projenize dağıtmayacaktır. Bununla ilgili daha fazla bilgi için bkz. Bildirimlerle uzantı yapılandırmasını yönetme

  2. Local Emulator Suite'i normalde yaptığınız gibi başlatın.

    firebase emulators:start

Artık manifestinizde listelenen firestore-send-email uzantısı örneğini kullanarak, Local Emulator Suite bu uzantının kaynak kodunu ~/.cache/firebase/extensions konumuna indirecektir. Kaynaklar indirildikten sonra Local Emulator Suite başlayacak ve uzantının arka planda tetiklenen işlevlerinden herhangi birini tetikleyebilecek ve uygulamanızı, uygulamanızla entegrasyonunu test etmek için Local Emulator Suite'e bağlayabileceksiniz.

Tetikleyici E-posta uzantısının gerektirdiği şekilde e-posta belgeleri koleksiyonuna veri eklemek ve diğer arka uç kaynaklarını ayarlamak için Emulator Suite kullanıcı arayüzünü 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 Cloud Firestore verilerini dolduran ve işlevleri tetikleyen uzantıyı değerlendirmek için bir test komut dosyası yazabilirsiniz. Daha sonra test komut dosyanızı yürütmek için Local Emulator Suite'i çağırırsınız:

firebase emulators:exec my-test.sh

Uzantılar öykünücüsüyle yapılan testlerin üretimden farkı nedir?

Uzantılar öykünücüsü, uzantıları üretim deneyimine yakın bir şekilde test etmenize olanak tanır. Ancak üretim davranışından bazı farklılıklar vardır.

Bulut IAM

Firebase Emulator Suite, çalıştırmak için IAM ile ilgili herhangi bir davranışı kopyalamaya veya bunlara uymaya çalışmaz. Emülatörler sağlanan Firebase Güvenlik Kurallarına uyar, ancak normalde IAM'in kullanılacağı durumlarda (örneğin, hizmet hesabını çağıran Cloud Functions'ı ve dolayısıyla izinleri ayarlamak için), emülatör yapılandırılamaz ve geliştirici makinenizde genel olarak mevcut olan hesabı kullanır. yerel bir betiği doğrudan çalıştırmaya benzer.

Tetikleme türü sınırlaması

Firebase Local Emulator Suite şu anda yalnızca HTTP isteğiyle tetiklenen işlevleri, uzantılar için Eventarc özel olay tetikleyicilerini ve Cloud Firestore, Gerçek Zamanlı Veritabanı, Firebase için Cloud Storage, Kimlik Doğrulama ve Pub/Sub için arka plan olayıyla tetiklenen işlevleri desteklemektedir. Diğer tetiklenen işlev türlerini kullanan uzantıları değerlendirmek için uzantınızı bir test Firebase projesine yüklemeniz gerekir.

Sırada ne var?