Catch up on everthing we announced at this year's Firebase Summit. Learn more

İşlevleri yerel olarak çalıştır

Firebase CLI, aşağıdaki işlev türlerini taklit edebilen bir Bulut İşlevleri öykünücüsü içerir:

  • HTTPS işlevleri
  • çağrılabilir fonksiyonlar
  • Kimlik Doğrulama, Gerçek Zamanlı Veritabanı, Cloud Firestore ve Cloud Pub/Sub'dan tetiklenen arka plan işlevleri.

Üretime dağıtmadan önce bunları test etmek için işlevleri yerel olarak çalıştırabilirsiniz.

Firebase CLI'yi yükleyin

Cloud Functions öykünücüsünü kullanmak için önce Firebase CLI'yi yükleyin:

npm install -g firebase-tools

Yerel öykünücüyü kullanmak için Bulut İşlevleriniz şunlara bağlı olmalıdır:

  • firebase-admin sürüm 8.0.0 veya daha yüksek.
  • firebase-functions sürüm 3.0.0 veya daha yüksek.

Yönetici kimlik bilgilerini ayarlayın (isteğe bağlı)

Eğer fonksiyon testleri aracılığıyla Google API'leri veya diğer Firebase API'leri ile etkileşim istiyorsanız Firebase Yönetici SDK , yönetici kimlik bilgilerini kurmak gerekebilir.

  • Bulut FireStore ve Gerçek Zamanlı Veri Tabanı tetikleyiciler zaten yeterli kimlik bilgilerine sahip ve ek kuruluma ihtiyaç yoktur.
  • Kimlik Doğrulama ve FCM gibi Firebase API'leri veya Cloud Translation veya Cloud Speech gibi Google API'leri dahil olmak üzere tüm diğer API'ler, bu bölümde açıklanan kurulum adımlarını gerektirir. Eğer fonksiyonlar kabuk veya kullanarak ister bu geçerlidir firebase emulators:start .

Öykünülmüş işlevler için yönetici kimlik bilgilerini ayarlamak için:

  1. Hizmet Hesapları bölmesini Google Bulut Konsolu.
  2. App Engine varsayılan hizmet hesabı seçili olduğundan emin olun ve anahtar oluşturun seçmek için sağdaki seçenekler menüsünü kullanın.
  3. İstendiğinde, anahtar türü için JSON seçin ve Oluştur'u tıklayın.
  4. Google varsayılan kimlik bilgilerinizi indirilen anahtarı işaret edecek şekilde ayarlayın:

    Unix

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
    

    pencereler

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
    

Bu adımları tamamladıktan sonra, fonksiyonları testleri kullanılarak Firebase ve Google API'leri erişebilir Yönetici SDK'yı . Bir Doğrulama tetiği test ederken Örneğin, taklit fonksiyonu diyebiliriz admin.auth().getUserByEmail(email) .

İşlev yapılandırmasını ayarlayın (isteğe bağlı)

Özel fonksiyonları yapılandırma değişkenleri kullanıyorsanız, ilk (içinde bu koşmak özel yapılandırma almak için komutu çalıştırmak functions yerel ortamda dizine):

firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json

Emülatör paketini çalıştırın

Kullanın Bulut İşlevleri çalıştırmak emülatörü için emulators:start komutunu:

firebase emulators:start

emulators:start komut Bulut Fonksiyonlar, Bulut Firestore, Gerçek Zamanlı Veritabanı emülatörler başlayacak ve Firebase kullanmakta yerel proje başlatılmış ürünlere dayalı Barındırma firebase init . Belirli bir emülatör başlatmak istiyorsanız, kullanmak --only bayrağı:

firebase emulators:start --only functions

Eğer başladık emülatörleri sonra bir test paketi veya test komut dosyasını çalıştırmak istiyorsanız, kullanmak emulators:exec komutu:

firebase emulators:exec "./my-test.sh"

Emülatörlerle konuşmak için uygulamanızı enstrümantal edin

Uygulamanızı emülatörlerle etkileşime girecek şekilde yönlendirmek için bazı ek yapılandırmalar yapmanız gerekebilir.

Uygulamanızı çağrılabilir işlevler için kullanın

Senin prototip ve test faaliyetleri dahil olursa çağrılabilir arka uç fonksiyonları , böyle Firebase emülatörü için Bulut Fonksiyonlar ile yapılandırmak etkileşimi:

Android
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseFunctions functions = FirebaseFunctions.getInstance();
        functions.useEmulator("10.0.2.2", 5001);
Süratli
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

Web sürümü 9

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

Web sürümü 8

firebase.functions().useEmulator("localhost", 5001);

Uygulamanızı HTTPS işlevleri öykünmesi için kullanın

Kodunuzdaki her HTTPS işlevi, aşağıdaki URL biçimi kullanılarak yerel öykünücüden sunulacaktır:

http:// $HOST : $PORT / $PROJECT / $REGION / $NAME

Örneğin basit bir helloWorld varsayılan ana liman ve bölge ile fonksiyon hizmet olacağını:

https://localhost:5001/ $PROJECT /us-central1/helloWorld

Uygulamanızı arka planda tetiklenen işlev öykünmesi için kullanın

Cloud Functions öykünücüsü, aşağıdaki kaynaklardan arka planda tetiklenen işlevleri destekler:

  • Gerçek Zamanlı Veritabanı öykünücüsü
  • Cloud Firestore öykünücüsü
  • Kimlik doğrulama öykünücüsü
  • Pub/Sub öykünücüsü

Arka plan olaylarını tetiklemek için uygulamanızı veya test kodunuzu platformunuz için SDK'yı kullanarak öykünücülere bağlayın.

Diğer hizmetlerle etkileşimler

Öykünücü paketi, ürünler arası etkileşimlerin test edilmesini sağlayan birden çok öykünücü içerir.

Bulut Firestore

Cloud Firestore'a yazmak için Firebase Admin SDK'sını kullanan Bulut İşlevleriniz varsa, bu yazma işlemleri, çalışıyorsa Cloud Firestore öykünücüsüne gönderilir. Bu yazma işlemleri tarafından başka Bulut İşlevleri tetiklenirse, bunlar Bulut İşlevleri öykünücüsünde çalıştırılacaktır.

Firebase Barındırma

Eğer Cloud Fonksiyonlar kullanıyorsanız Firebase Hosting için dinamik içerik oluşturmak , firebase emulators:start barındırılması için temsilci olarak yerel HTTP işlevlerini kullanır.

Kerestecilik

Öykünücü, işlevlerinizden günlükleri çalıştıkları terminal penceresine aktarır. Her gelen çıktıyı görüntüler console.log() , console.info() , console.error() ve console.warn() Fonksiyonlarınızdan içindeki ifadeleri.

Sonraki adımlar

Firebase emülatörü seti kullanılarak tam Örneğin, bakınız test hızlı başlangıç örneği .