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

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

Firebase CLI, aşağıdaki işlev türlerini taklit edebilen bir Cloud Functions emülatörü içerir:

  • HTTPS işlevleri
  • Çağrılabilir işlevler
  • 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 emülatörünü kullanmak için önce Firebase CLI'yi yükleyin:

npm install -g firebase-tools

Yerel emülatörü kullanmak için Cloud Functions'ın şunlara bağlı olması gerekir:

  • firebase-admin sürüm 8.0.0 veya üzeri.
  • firebase-functions sürüm 3.0.0 veya üzeri.

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

İşlev testlerinizin Firebase Admin SDK aracılığıyla Google API'leri veya diğer Firebase API'leri ile etkileşimde bulunmasını istiyorsanız yönetici kimlik bilgilerini ayarlamanız 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 diğer tüm API'ler bu bölümde açıklanan kurulum adımlarını gerektirir. Bu, işlev kabuğunu veya firebase emulators:start kullanıyor olsanız da firebase emulators:start .

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

  1. Google Cloud Console'un Hizmet Hesapları bölümünü açın.
  2. App Engine varsayılan hizmet hesabının seçildiğinden emin olun ve Anahtar oluştur'u seçmek için sağdaki seçenekler menüsünü kullanın.
  3. İstendiğinde, anahtar türü için JSON'u seçin ve Oluştur'u tıklayın.
  4. Google varsayılan kimlik bilgilerinizi, indirilen anahtara 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, işlev testleriniz Yönetici SDK'sını kullanarak Firebase ve Google API'lerine erişebilir. Örneğin, bir Kimlik Doğrulama tetikleyicisini test ederken, öykünülmüş işlev admin.auth().getUserByEmail(email) .

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

Özel işlev yapılandırma değişkenleri kullanıyorsanız, önce yerel ortamınızda özel yapılandırmanızı (bunu functions dizininde çalıştırın) almak için komutu çalıştırın:

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

Öykünücü paketini çalıştırın

Cloud Functions emülatörünü çalıştırmak için emülatörleri kullanın emulators:start komutu:

firebase emulators:start

emulators:start komutu, firebase init kullanarak yerel projenizde başlattığınız ürünlere göre Cloud Functions, Cloud Firestore, Realtime Database ve Firebase Hosting için emülatörleri başlatır. Belirli bir öykünücüyü başlatmak istiyorsanız, --only bayrağını kullanın:

firebase emulators:start --only functions

Öykünücüler başladıktan sonra bir test paketi veya test komut dosyası çalıştırmak istiyorsanız, öykünücüleri kullanın emulators:exec komutu:

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

Emülatörlerle konuşmak için uygulamanızı kullanın

Uygulamanızı öykünücülerle etkileşime girecek şekilde ayarlamak için bazı ek yapılandırma yapmanız gerekebilir.

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

Prototipiniz ve test etkinlikleriniz çağrılabilir arka uç işlevlerini içeriyorsa Cloud Functions for Firebase öykünücüsü ile etkileşimi şu şekilde yapılandırın:

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);
iOS - Swift
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")
firebase.functions().useEmulator("localhost", 5001);

Uygulamanızı HTTPS işlevleri emülasyonu için kullanın

Kodunuzdaki her HTTPS işlevi, aşağıdaki URL biçimi kullanılarak yerel emülatörden sunulacaktır:

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

Örneğin, varsayılan ana bilgisayar bağlantı noktası ve bölgeye sahip basit bir helloWorld işlevi şu adreste sunulacaktır:

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

Uygulamanızı arka planda tetiklenen işlevler emülasyonu için kullanın

Cloud Functions emülatörü, aşağıdaki kaynaklardan arka planda tetiklenen işlevleri destekler:

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

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

Emülatör paketi, ürünler arası etkileşimlerin test edilmesini sağlayan birden çok emülatör içerir.

Cloud Firestore

Cloud Firestore'a yazmak için Firebase Admin SDK kullanan Cloud Functions varsa, bu yazmalar çalışıyorsa Cloud Firestore emülatörüne gönderilir. Bu yazılar tarafından daha fazla Cloud Functions tetiklenirse, bunlar Cloud Functions emülatöründe çalıştırılır.

Firebase Hosting

firebase emulators:start Hosting için dinamik içerik oluşturmak üzere Cloud Functions kullanıyorsanız firebase emulators:start , barındırma için proxy olarak yerel HTTP işlevlerinizi kullanır.

Kerestecilik

Öykünücü, işlevlerinizden günlükleri çalıştıkları terminal penceresine aktarır. console.log() , console.info() , console.error() ve console.warn() ifadelerinden tüm çıktıları işlevlerinizin içinde görüntüler.

Sonraki adımlar

Firebase emülatör paketini kullanmanın tam bir örneği için test hızlı başlangıç ​​örneğine bakın .