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

स्थानीय रूप से कार्य चलाएँ

फायरबेस सीएलआई में एक क्लाउड फंक्शंस एमुलेटर शामिल है जो निम्नलिखित फ़ंक्शन प्रकारों का अनुकरण कर सकता है:

  • एचटीटीपीएस फ़ंक्शन
  • कॉल करने योग्य कार्य
  • प्रमाणीकरण, रीयलटाइम डेटाबेस, क्लाउड फायरस्टोर और क्लाउड पब/सब से ट्रिगर होने वाले पृष्ठभूमि कार्य।

आप उत्पादन में परिनियोजित करने से पहले उनका परीक्षण करने के लिए स्थानीय रूप से फ़ंक्शन चला सकते हैं।

फायरबेस सीएलआई स्थापित करें

क्लाउड फ़ंक्शंस एमुलेटर का उपयोग करने के लिए, पहले फायरबेस सीएलआई स्थापित करें:

npm install -g firebase-tools

स्थानीय एमुलेटर का उपयोग करने के लिए, आपके क्लाउड फ़ंक्शंस पर निर्भर होना चाहिए:

  • firebase-admin संस्करण 8.0.0 या उच्चतर।
  • firebase-functions संस्करण 3.0.0 या उच्चतर।

व्यवस्थापक क्रेडेंशियल सेट करें (वैकल्पिक)

आप अपने कार्यों परीक्षण के माध्यम से गूगल एपीआई या अन्य Firebase एपीआई के साथ बातचीत करना चाहते हैं Firebase नियंत्रक SDK , आप व्यवस्थापक क्रेडेंशियल स्थापित करने के लिए आवश्यकता हो सकती है।

  • बादल Firestore और रीयलटाइम डाटाबेस चलाता पहले से ही पर्याप्त संदर्भ सामग्री, और अतिरिक्त सेटअप की आवश्यकता नहीं है।
  • फायरबेस एपीआई जैसे प्रमाणीकरण और एफसीएम या Google एपीआई जैसे क्लाउड ट्रांसलेशन या क्लाउड स्पीच सहित अन्य सभी एपीआई को इस अनुभाग में वर्णित सेटअप चरणों की आवश्यकता होती है। यह लागू होता है कि क्या आप का उपयोग कर रहे कार्यों शैल या firebase emulators:start

एमुलेटेड फ़ंक्शंस के लिए व्यवस्थापक क्रेडेंशियल सेट करने के लिए:

  1. खोलें सेवा खाते फलक Google क्लाउड कंसोल की।
  2. सुनिश्चित करें कि App इंजन डिफ़ॉल्ट सेवा खाते चयनित है, और कुंजी बनाएँ का चयन करने के लिए सही पर विकल्प मेनू का उपयोग करें।
  3. संकेत मिलने पर, कुंजी प्रकार के लिए JSON चयन करें, और बनाएँ क्लिक करें।
  4. डाउनलोड की गई कुंजी को इंगित करने के लिए अपने Google डिफ़ॉल्ट क्रेडेंशियल सेट करें:

    यूनिक्स

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

    खिड़कियाँ

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

इन चरणों को पूरा करने के बाद, अपने कार्यों परीक्षण का उपयोग Firebase और गूगल एपीआई का उपयोग कर सकते नियंत्रक SDK । उदाहरण के लिए, जब एक प्रमाणीकरण ट्रिगर परीक्षण, नकल करते समारोह कह सकते हैं admin.auth().getUserByEmail(email)

फ़ंक्शन कॉन्फ़िगरेशन सेट करें (वैकल्पिक)

आप कस्टम कार्यों विन्यास चर का उपयोग कर रहे हैं, तो पहले (के भीतर इस चलाने के अपने कस्टम config प्राप्त करने के लिए आदेश चला functions अपने स्थानीय वातावरण में निर्देशिका):

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

एमुलेटर सूट चलाएं

बादल कार्य चलाने एमुलेटर, उपयोग करने के लिए emulators:start आदेश:

firebase emulators:start

emulators:start आदेश बादल कार्य, बादल Firestore, रीयलटाइम डाटाबेस के लिए emulators शुरू कर देंगे, और Firebase उत्पादों आप अपने स्थानीय का उपयोग कर परियोजना में प्रारंभ की है के आधार पर होस्टिंग firebase init । आप एक विशेष एमुलेटर शुरू करने के लिए चाहते हैं, का उपयोग --only झंडा:

firebase emulators:start --only functions

आप emulators के बाद टेस्ट स्वीट या परीक्षण स्क्रिप्ट चलाने के लिए शुरू कर दिया है चाहते हैं, का उपयोग emulators:exec आदेश:

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

एमुलेटर से बात करने के लिए अपने ऐप को इंस्ट्रुमेंट करें

अपने ऐप को एमुलेटर के साथ इंटरैक्ट करने के लिए, आपको कुछ अतिरिक्त कॉन्फ़िगरेशन करने की आवश्यकता हो सकती है।

कॉल करने योग्य कार्यों के लिए अपने ऐप को इंस्ट्रुमेंट करें

अपने प्रोटोटाइप और परीक्षण गतिविधियां शामिल हैं प्रतिदेय बैकएंड कार्यों , इस तरह Firebase एमुलेटर के लिए बादल कार्य के साथ कॉन्फ़िगर बातचीत:

एंड्रॉयड
        // 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);
तीव्र
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

वेब संस्करण 9

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

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

वेब संस्करण 8

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

HTTPS फंक्शन इम्यूलेशन के लिए अपने ऐप को इंस्ट्रुमेंट करें

आपके कोड में प्रत्येक HTTPS फ़ंक्शन निम्न URL प्रारूप का उपयोग करके स्थानीय एमुलेटर से परोसा जाएगा:

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

उदाहरण के लिए एक सरल helloWorld डिफ़ॉल्ट होस्ट पोर्ट और इस क्षेत्र के साथ समारोह में ऐसा दिखाई देगा:

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

बैकग्राउंड-ट्रिगर फंक्शन एमुलेशन के लिए अपने ऐप को इंस्ट्रुमेंट करें

क्लाउड फ़ंक्शंस एमुलेटर निम्नलिखित स्रोतों से पृष्ठभूमि-ट्रिगर फ़ंक्शंस का समर्थन करता है:

  • रीयलटाइम डेटाबेस एमुलेटर
  • क्लाउड फायरस्टोर एमुलेटर
  • प्रमाणीकरण एमुलेटर
  • पब/उप एमुलेटर

पृष्ठभूमि ईवेंट ट्रिगर करने के लिए, अपने प्लेटफ़ॉर्म के लिए SDK का उपयोग करके अपने ऐप या परीक्षण कोड को एमुलेटर से कनेक्ट करें।

अन्य सेवाओं के साथ सहभागिता

एमुलेटर सूट में कई एमुलेटर शामिल हैं, जो क्रॉस-प्रोडक्ट इंटरैक्शन के परीक्षण को सक्षम करते हैं।

क्लाउड फायरस्टोर

यदि आपके पास क्लाउड फ़ंक्शंस हैं जो क्लाउड फायरस्टोर को लिखने के लिए फायरबेस एडमिन एसडीके का उपयोग करते हैं, तो ये लेखन क्लाउड फायरस्टोर एमुलेटर को भेजे जाएंगे यदि यह चल रहा है। यदि आगे क्लाउड फ़ंक्शंस उन लिखने वालों द्वारा ट्रिगर किए जाते हैं, तो वे क्लाउड फ़ंक्शंस एमुलेटर में चलाए जाएंगे।

फायरबेस होस्टिंग

आप के लिए बादल कार्य उपयोग कर रहे हैं Firebase होस्टिंग के लिए गतिशील सामग्री उत्पन्न , firebase emulators:start की मेजबानी के लिए प्रॉक्सी के रूप में अपने स्थानीय HTTP कार्यों का उपयोग करता।

लॉगिंग

एम्यूलेटर आपके कार्यों से लॉग को टर्मिनल विंडो पर स्ट्रीम करता है जहां वे चलते हैं। यह सब से उत्पादन को प्रदर्शित करता है console.log() , console.info() , console.error() , और console.warn() अपने कार्यों के अंदर बयान।

अगला कदम

Firebase एमुलेटर सुइट का उपयोग करके की एक पूरी उदाहरण के लिए, को देखने के परीक्षण के त्वरित प्रारंभ नमूना