Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Uygulamanızı bağlayın ve prototip oluşturmaya başlayın

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 ile Başlayın konularına göre platformunuz için Firebase SDK'ları seçtiğiniz ve yüklediğinizden emin olun: iOS , 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 öykünücüsü içerir. Üretimde kullandığınız Firebase ürünlerine karşılık gelen uygun gördüğünüz emülatör kombinasyonlarının yanı sıra ayrı emülatörlerle prototip oluşturabilir ve test edebilirsiniz.

Firebase dstabase ve işlev emülatörleri arasındaki etkileşim
Tam Yerel Emülatör Paketinin bir parçası olarak Veritabanı ve Bulut İşlevleri emülatörleri.

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ünün genellikle üç adımı olur:

  1. Prototip özellikleri, öykünücüler ve Emulator Suite UI ile etkileşimli olarak bulunur.

  2. Bir veritabanı öykünücüsü veya Cloud Functions ö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.

  3. Öykünücüler ve özel komut dosyalarıyla testlerinizi otomatikleştirin.

Bir Firebase projesini yerel olarak başlatın

CLI'yi kurduğunuzdan 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 komut istemlerini 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ı, bulut işlevleri kodunu içeren bir functions dizini ve diğer destekleyici dosyaları içerecektir.

Etkileşimli olarak prototip oluşturun

Local Emulator Suite, yeni özelliklerin hızlı bir şekilde prototipini oluşturmanıza izin vermek için tasarlanmıştır ve Suite'in yerleşik kullanıcı arabirimi, en kullanışlı prototip oluşturma araçlarından biridir. Bu biraz Firebase konsolunun yerel olarak çalışmasına benziyor.

Emulator Suite UI kullanarak, bir veritabanının tasarımını yineleyebilir, bulut işlevlerini içeren farklı veri akışlarını deneyebilir, Güvenlik Kuralları değişikliklerini 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, baştan başlamak istiyorsanız, veritabanınızı temizlemeniz ve yeni bir tasarım fikriyle baştan başlamanız yeterlidir.

Yerel 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şlevini ayarlayıp test edelim ve onu tetiklemek için Emulator Suite kullanıcı arayüzünde bu veritabanını oluşturup dolduralım.

  1. Proje dizininizdeki functions/index.js dosyasını düzenleyerek veritabanı yazmalarıyla tetiklenen bir bulut işlevi oluşturun. Mevcut dosyanın içeriğini aşağıdaki kod parçacığı ile değiştirin. Bu işlev, messages koleksiyonundaki belgelerde yapılan değişiklikleri dinler, bir belgenin original alanının içeriğini büyük harfe dönüştürür ve sonucu o belgenin uppercase alanına uppercase .
  2.   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});
          });
      
  3. firebase emulators:start Yerel Emülatör Paketini başlatın firebase emulators:start . Birlikte çalışacak şekilde otomatik olarak yapılandırılan Cloud Functions ve veritabanı emülatörleri başlatılır.
  4. Kullanıcı arayüzünü tarayıcınızda http://localhost:4000 . Bağlantı noktası 4000, kullanıcı arayüzü için varsayılan değerdir, ancak Firebase CLI tarafından çıkarılan terminal mesajlarını kontrol edin. Kullanılabilir emülatörlerin durumuna dikkat edin. Bizim durumumuzda, Cloud Functions ve Cloud Firestore emülatörleri çalışacak.
    Görüntüm
  5. Kullanıcı arayüzünde, Firestore sekmesinde, Koleksiyona başla'yı tıklayın ve bir messages koleksiyonunda original ve değer test ile yeni bir belge oluşturmak için istemleri izleyin. Bu, bulut işlevimizi tetikler. Kısa süre içinde "TEST" dizesiyle doldurulmuş yeni bir uppercase alanın göründüğünü gözlemleyin.
    GörüntümGörüntüm
  6. Veritabanını güncellediğinde işlevinizin hatalarla çalışmadığını onaylamak için Günlükler sekmesini kontrol edin.

Uygulama içi veritabanı erişim koduna dokunmadan, test paketlerini yeniden derlemeden ve yeniden çalıştırmadan, aradığınız veri akışını elde edene kadar bulut işlev kodunuz ve etkileşimli veritabanı düzenlemeleri arasında kolayca yineleme yapabilirsiniz.

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ı Arabirimindeki Günlükler sekmesini kullanmaya devam edeceksiniz.

Yerel Emülatör Paketinin yerel bir geliştirme aracı olduğunu unutmayın. Üretim veritabanlarınıza yazılanlar, yerel olarak prototip oluşturduğunuz işlevleri tetiklemez.

Uygulamanızın veritabanına yazmalarını sağlamaya geçmek için, test sınıflarınızı veya uygulama içi yapılandırmanızı Cloud Firestore emülatörü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);
iOS - Swift
let settings = Firestore.firestore().settings
settings.host = "localhost:8080"
settings.isPersistenceEnabled = false 
settings.isSSLEnabled = false
Firestore.firestore().settings = settings
// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}
// Initialize your Web app as described in the Get started for Web
// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}

Testlerinizi özel komut dosyalarıyla otomatikleştirin

Şimdi son genel iş akışı adımı için. Uygulama içi özelliğinizin prototipini oluşturduktan ve tüm platformlarınızda umut verici göründüğünde, son uygulama ve teste geçebilirsiniz. Birim testi ve CI iş akışları için, exec komutuyla tek bir çağrıda öykünücüler başlatabilir, komut dosyası içeren testleri çalıştırabilir ve öykünücüleri kapatabilirsiniz:

firebase emulators:exec "./testdir/test.sh"

Bireysel emülatörleri daha derinlemesine keşfedin

Artık temel istemci tarafı iş akışının neye benzediğini gördüğünüze göre, Suite'teki bireysel ö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:

Sıradaki ne?

Yukarıda bağlantısı verilen belirli öykünücülerle ilgili konuları okuduğunuzdan emin olun. Sonra: