Firebase Local Emulator Suite'e geçmeden önce, bir Firebase projesi oluşturduğunuzdan, geliştirme ortamınızı kurduğunuzdan ve platformunuz için Firebase'i kullanmaya başlama konularına göre platformunuz için Firebase SDK'larını seçip yüklediğinizden emin olun: Apple , Android veya Web .
Prototip ve test
Local Emulator Suite, Firebase Local Emulator Suite'e Giriş bölümünde açıklandığı gibi birkaç ürün emülatörü içerir. Üretimde kullandığınız Firebase ürünlerine karşılık gelen, uygun gördüğünüz şekilde, tek tek emülatörlerin yanı sıra emülatör kombinasyonlarıyla prototip yapabilir ve test edebilirsiniz.

Bu konu için, Local Emulator Suite iş akışını tanıtmak için, tipik bir ürün kombinasyonu kullanan bir uygulama üzerinde çalıştığınızı varsayalım: bir Firebase veritabanı ve bu veritabanındaki işlemler tarafından tetiklenen bulut işlevleri.
Firebase projenizi yerel olarak başlattıktan sonra, Local Emulator Suite kullanan geliştirme döngüsü genellikle üç adımdan oluşur:
Prototip özellikleri, emülatörler ve Emulator Suite UI ile etkileşimli olarak.
Bir veritabanı öykünücüsü veya Bulut İşlevleri öykünücüsü kullanıyorsanız, uygulamanızı öykünücülere bağlamak için tek seferlik bir adım gerçekleştirin.
Öykünücüler ve özel komut dosyalarıyla testlerinizi otomatikleştirin.
Bir Firebase projesini yerel olarak başlatma
CLI'yi yüklediğinizden veya en son sürümüne güncellediğinizden emin olun.
curl -sL firebase.tools | bash
Henüz yapmadıysanız, Cloud Functions ve Cloud Firestore veya Realtime Database kullandığınızı belirtmek için ekrandaki komutları izleyerek mevcut çalışma dizinini bir Firebase projesi olarak başlatın:
firebase init
Proje dizininiz artık Firebase yapılandırma dosyalarını, veritabanı için bir Firebase Güvenlik Kuralları tanım dosyasını, bulut işlevleri kodunu içeren bir functions
dizini ve diğer destekleyici dosyaları içerecektir.
Prototip etkileşimli olarak
Local Emulator Suite, yeni özellikleri hızlı bir şekilde prototiplemenize izin vermek için tasarlanmıştır ve Suite'in yerleşik kullanıcı arayüzü, en kullanışlı prototipleme araçlarından biridir. Bu biraz Firebase konsolunun yerel olarak çalışmasına benziyor.
Emulator Suite UI'yi kullanarak bir veritabanının tasarımını yineleyebilir, bulut işlevlerini içeren farklı veri akışlarını deneyebilir, Güvenlik Kurallarındaki değişiklikleri değerlendirebilir, arka uç hizmetlerinizin nasıl performans gösterdiğini doğrulamak için günlükleri kontrol edebilir ve daha fazlasını yapabilirsiniz. Ardından, yeniden başlamak istiyorsanız, veritabanınızı temizleyin ve yeni bir tasarım fikriyle yeni bir başlangıç yapın.
Local Emulator Suite'i aşağıdakilerle başlattığınızda hepsi kullanılabilir:
firebase emulators:start
Varsayımsal uygulamamızın prototipini oluşturmak için, bir veritabanındaki metin girişlerini değiştirmek için temel bir bulut işlevi ayarlayıp test edelim ve onu tetiklemek için bu veritabanını hem oluşturup hem de Emulator Suite UI'de dolduralım.
- Proje dizininizdeki
functions/index.js
dosyasını düzenleyerek veritabanı yazma işlemleri tarafından tetiklenen bir bulut işlevi oluşturun. Mevcut dosyanın içeriğini aşağıdaki snippet ile değiştirin. Bu işlev,messages
koleksiyonundaki belgelerde yapılan değişiklikleri dinler, belgeninoriginal
alanının içeriğini büyük harfe dönüştürür ve sonucu o belgeninuppercase
alanında saklar. -
firebase emulators:start
ile Local Emulator Suite'i başlatın. Bulut İşlevleri ve veritabanı öykünücüleri başlatılır ve birlikte çalışacak şekilde otomatik olarak yapılandırılır. - Kullanıcı arayüzünü tarayıcınızda
http://localhost:4000
görüntüleyin. Bağlantı noktası 4000, kullanıcı arabirimi için varsayılandır, ancak Firebase CLI tarafından çıkan terminal mesajlarını kontrol edin. Kullanılabilir öykünücülerin durumunu not edin. Bizim durumumuzda Cloud Functions ve Cloud Firestore emülatörleri çalışıyor olacak.
- Kullanıcı arabiriminde, Firestore sekmesinde, Veri alt sekmesinde, Koleksiyonu başlat'a tıklayın ve alan adı
original
ve değertest
ile birmessages
koleksiyonunda yeni bir belge oluşturmak için istemleri izleyin. Bu, bulut işlevimizi tetikler. Kısa bir süre sonra "TEST" dizesiyle doldurulmuş yeni biruppercase
alanın göründüğünü gözlemleyin.
- Firestore > İstekler sekmesinde, bu istekleri yerine getirmenin bir parçası olarak gerçekleştirilen tüm Firebase Güvenlik Kuralları değerlendirmeleri dahil, öykünülmüş veritabanınıza yapılan istekleri inceleyin.
- Veritabanını güncellerken işlevinizin hatalarla karşılaşmadığını doğrulamak için Günlükler sekmesini kontrol edin.
const functions = require('firebase-functions'); exports.makeUppercase = functions.firestore.document('/messages/{documentId}') .onCreate((snap, context) => { const original = snap.data().original; console.log('Uppercasing', context.params.documentId, original); const uppercase = original.toUpperCase(); return snap.ref.set({uppercase}, {merge: true}); });
Aradığınız veri akışını elde edene kadar, uygulama içi veritabanı erişim koduna dokunmadan, test takımlarını yeniden derlemeden ve yeniden çalıştırmadan, bulut işlev kodunuz ve etkileşimli veritabanı düzenlemeleriniz arasında kolayca yineleyebilirsiniz.
Uygulamanızı emülatörlere bağlayın
Etkileşimli prototip oluşturmada iyi bir ilerleme kaydettiğinizde ve bir tasarıma karar verdiğinizde, uygun SDK'yı kullanarak uygulamanıza veritabanı erişim kodu eklemeye hazır olacaksınız. Uygulamanızın davranışının doğru olduğunu onaylamak için veritabanı sekmesini ve işlevler için Emulator Suite Kullanıcı Arayüzündeki Günlükler sekmesini kullanmaya devam edeceksiniz.
Local Emulator Suite'in yerel bir geliştirme aracı olduğunu unutmayın. Üretim veritabanlarınıza yazma işlemleri, yerel olarak prototiplediğiniz işlevleri tetiklemez.
Uygulamanızın veritabanına yazma yapmasını sağlamak için test sınıflarınızı veya uygulama içi yapılandırmanızı Cloud Firestore öykünücüsüne yönlendirmeniz gerekir.
Android
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. FirebaseFirestore firestore = FirebaseFirestore.getInstance(); firestore.useEmulator("10.0.2.2", 8080); FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder() .setPersistenceEnabled(false) .build(); firestore.setFirestoreSettings(settings);
Süratli
let settings = Firestore.firestore().settings settings.host = "localhost:8080" settings.isPersistenceEnabled = false settings.isSSLEnabled = false Firestore.firestore().settings = settings
Web version 9
import { getFirestore, connectFirestoreEmulator } from "firebase/firestore"; // firebaseApps previously initialized using initializeApp() const db = getFirestore(); connectFirestoreEmulator(db, 'localhost', 8080);
Web version 8
// Firebase previously initialized using firebase.initializeApp(). var db = firebase.firestore(); if (location.hostname === "localhost") { db.useEmulator("localhost", 8080); }
Özel komut dosyalarıyla testlerinizi otomatikleştirin
Şimdi son genel iş akışı adımı için. Özelliğinizi uygulama içinde prototipledikten ve tüm platformlarınızda umut verici göründüğünde, nihai uygulamaya ve teste dönebilirsiniz. Birim testi ve CI iş akışları için, exec
komutuyla tek bir çağrıda öykünücüleri başlatabilir, komut dosyası testleri çalıştırabilir ve öykünücüleri kapatabilirsiniz:
firebase emulators:exec "./testdir/test.sh"
Bireysel öykünücüleri daha derinlemesine keşfedin
Artık temel istemci tarafı iş akışının neye benzediğini gördüğünüze göre, Suite'teki tek tek öykünücüler hakkında, bunların sunucu tarafı uygulama geliştirme için nasıl kullanılacağı da dahil olmak üzere ayrıntılarla devam edebilirsiniz:
- Prototip oluşturma iş akışlarınıza Kimlik Doğrulama öykünücüsü ekleyin
- Gerçek Zamanlı Veritabanı öykünücüsü özellikleri hakkında derinlemesine bilgi edinin
- Cloud Storage öykünücüsü özellikleri hakkında derinlemesine bilgi edinin
- Cloud Firestore öykünücüsü özellikleri hakkında ayrıntılı bilgi edinin
- Uygulamanızı Cloud Functions öykünücüsüne bağlayın
- Uzantılar öykünücüsüyle faturalandırma maliyetlerini en aza indirirken Firebase Uzantılarını değerlendirin
Sıradaki ne?
Yukarıda bağlantılı belirli emülatörlerle ilgili konuları okuduğunuzdan emin olun. O zamanlar:
- Bir dizi video ve ayrıntılı nasıl yapılır örnekleri için Firebase Emulators Eğitim Oynatma Listesini izleyin.
- Güvenlik Kuralları testini ve Firebase Test SDK'sını içeren gelişmiş kullanım örneklerini araştırın: Test Güvenlik Kuralları (Cloud Firestore) , Test Güvenlik Kuralları (Gerçek Zamanlı Veritabanı) ve Test Güvenlik Kuralları (Bulut Depolama) .