Uygulamanızla Extensions emülatörünü kullanmadan önce genel Firebase Local Emulator Suite iş akışını anladığınızdan, Local Emulator Suite'ı yükleyip yapılandırdığınızdan ve CLI komutlarını incelediğinizden emin olun.
Bu kılavuzda, Firebase Extensions ve bunları Firebase uygulamalarınızda nasıl kullanacağınız hakkında bilgi sahibi olduğunuz varsayılmaktadır.
Extensions emülatörüyle neler yapabilirim?
Extensions emülatörüyle, güvenli bir yerel ortamda uzantıları yükleyip yönetebilir, özelliklerini daha iyi anlayabilir ve faturalandırma maliyetlerini en aza indirebilirsiniz. Emülatör, Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication ve Pub/Sub için emülatörler kullanılarak arka plan etkinliği tarafından tetiklenen işlevler ve Cloud Functions v2'de uygulanan Eventarc tarafından 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 taklit eder.
Kullanılacak projeyi seçmek için emülatörleri başlatmadan önce çalışma dizininizde firebase use
komutunu çalıştırın. Alternatif olarak, her bir emülatör komutuna --project
işaretini iletebilirsiniz.
Local Emulator Suite Gerçek Firebase projelerinin ve demo projelerinin emülasyonunu destekler.
Proje türü | Özellikler | Emülatörlerle kullanma |
---|---|---|
Real |
Gerçek bir Firebase projesi, sizin oluşturup yapılandırdığınız (büyük olasılıkla Firebase konsolu üzerinden) bir projedir. Gerçek projelerde veritabanı örnekleri, depolama paketleri, işlevler veya söz konusu 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ör çalıştırabilirsiniz. Emülasyonunu yapmadığınız tüm ürünler için uygulamalarınız ve kodunuz canlı kaynakla (veritabanı örneği, depolama paketi, işlev vb.) etkileşimde bulunur. |
Demo |
Demo Firebase projesinde gerçek Firebase yapılandırması ve canlı kaynaklar yoktur. Bu projelere genellikle codelab'ler veya diğer eğitimler aracılığıyla erişilir. Demo projelerin proje kimlikleri |
Demo Firebase projeleriyle çalışırken uygulamalarınız ve kodunuz yalnızca emülatörlerle etkileşimde bulunur. Uygulamanız, 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 durumda demo projeleri kullanmanızı öneririz. Sunulan avantajlar arasında şunlar sayılabilir:
- Emülatörleri Firebase projesi oluşturmadan çalıştırabileceğiniz için daha kolay kurulum
- Kodunuz yanlışlıkla emüle edilmemiş (üretim) kaynakları çağırdığında veri değişikliği, kullanım ve faturalandırma olasılığı olmadığından daha güçlü güvenlik
- SDK yapılandırmanızı indirmek için internete erişmeniz gerekmediğinden daha iyi çevrimdışı destek sunar.
Uzantı yükleme ve değerlendirme
Bir uzantının ihtiyaçlarınızı karşılayıp karşılamadığını değerlendirmek için Extensions emülatörünü kullanmak kolaydır.
Aşağıdaki iş akışı tüm uzantıları kapsasa da Trigger Email (firestore-send-email
) uzantısıyla ilgilendiğinizi varsayalım. Yerel emülatörlerle çalıştırıldığında, Trigger Email otomatik olarak Cloud Firestore ve Cloud Functions emülatörlerini kullanır.
Bir uzantıyı yerel olarak değerlendirmek için:
Uzantıyı yerel uzantılar manifestine ekleyin. Uzantı manifesti, uzantı örneklerinin ve yapılandırmalarının listesidir.
firebase ext:install --local firebase/firestore-send-email
Yukarıdaki komutu çalıştırdığınızda
firebase/firestore-send-email
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. Bu konu hakkında daha fazla bilgi için Manifestlerle uzantı yapılandırmasını yönetme başlıklı makaleyi inceleyin.Normalde yaptığınız gibi Local Emulator Suite başlatın.
firebase emulators:start
Artık manifestinizde listelenen firestore-send-email
uzantı örneğini kullanarak Local Emulator Suite, bu uzantının kaynak kodunu ~/.cache/firebase/extensions
konumuna indirecek. Kaynaklar indirildikten sonra Local Emulator Suite başlatılır. Bu durumda, uzantının arka planda tetiklenen işlevlerinden herhangi birini tetikleyebilir ve uygulamanızla entegrasyonunu test etmek için uygulamanızı Local Emulator Suite'ya bağlayabilirsiniz.
E-posta belgeleri koleksiyonuna veri eklemek ve Trigger Email uzantısının gerektirdiği diğer arka uç kaynaklarını ayarlamak için Emulator Suite UI aracını kullanabilirsiniz.
Alternatif olarak, sürekli entegrasyon iş akışları gibi etkileşimli olmayan test ortamlarında, uzantıyı değerlendirmek için bir test komut dosyası yazabilirsiniz. Bu komut dosyası, diğer adımların yanı sıra gerekli Cloud Firestore verilerini doldurur ve işlevleri tetikler. Ardından, test komut dosyanızı yürütmek için Local Emulator Suite işlevini çağırırsınız:
firebase emulators:exec my-test.sh
Extensions emülatörüyle test etmenin üretimden farkı
Extensions emülatörü, uzantıları üretim deneyimine çok yakın bir şekilde test etmenize olanak tanır. Ancak üretim davranışından bazı farklılıklar vardır.
Cloud IAM
Firebase Emulator Suite, çalıştırma için IAM ile ilgili davranışları kopyalamaya veya bunlara uymaya çalışmaz. Emülatörler, sağlanan Firebase Security Rules'a uyar. Ancak normalde IAM'in kullanılacağı durumlarda (ör. Cloud Functions çağırma hizmet hesabını ve dolayısıyla izinleri ayarlamak için) emülatör yapılandırılamaz ve geliştirici makinenizde genel olarak kullanılabilen hesabı doğrudan yerel bir komut dosyası çalıştırmaya benzer şekilde kullanır.
Tetikleme türü sınırlaması
Şu anda Firebase Local Emulator Suite yalnızca HTTP isteğiyle tetiklenen işlevleri, uzantılar için Eventarc özel etkinlik tetikleyicilerini ve Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication ve Pub/Sub için arka plan etkinliğiyle 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.
Sonrasında ne olacak?
- Seçilmiş bir dizi video ve ayrıntılı "Nasıl Yapılır?" örnekleri için Firebase Emulators Eğitimi Oynatma Listesi'ni inceleyin.