फायरबेस सीएलआई में एक क्लाउड फंक्शंस एमुलेटर शामिल है जो निम्नलिखित फ़ंक्शन प्रकारों का अनुकरण कर सकता है:
- एचटीटीपीएस फ़ंक्शन
- कॉल करने योग्य कार्य
- फायरबेस ऑथेंटिकेशन, रियलटाइम डेटाबेस, क्लाउड फायरस्टोर, क्लाउड स्टोरेज और क्लाउड पब/सब से ट्रिगर होने वाले बैकग्राउंड फंक्शन।
आप उत्पादन में परिनियोजित करने से पहले उनका परीक्षण करने के लिए स्थानीय रूप से फ़ंक्शन चला सकते हैं।
फायरबेस सीएलआई स्थापित करें
क्लाउड फ़ंक्शंस एमुलेटर का उपयोग करने के लिए, पहले फायरबेस सीएलआई स्थापित करें:
npm install -g firebase-tools
स्थानीय एमुलेटर का उपयोग करने के लिए, आपके क्लाउड फ़ंक्शंस पर निर्भर होना चाहिए:
-
firebase-admin
संस्करण8.0.0
या उच्चतर। -
firebase-functions
संस्करण3.0.0
या उच्चतर।
व्यवस्थापक क्रेडेंशियल सेट करें (वैकल्पिक)
यदि आप चाहते हैं कि आपके फ़ंक्शन परीक्षण Google API या अन्य Firebase API के साथ Firebase व्यवस्थापक SDK के माध्यम से इंटरैक्ट करें, तो आपको व्यवस्थापक क्रेडेंशियल सेट करने की आवश्यकता हो सकती है।
- क्लाउड फायरस्टोर और रीयलटाइम डेटाबेस ट्रिगर के पास पहले से ही पर्याप्त क्रेडेंशियल हैं, और उन्हें अतिरिक्त सेटअप की आवश्यकता नहीं है।
- फायरबेस एपीआई जैसे प्रमाणीकरण और एफसीएम या Google एपीआई जैसे क्लाउड ट्रांसलेशन या क्लाउड स्पीच सहित अन्य सभी एपीआई को इस अनुभाग में वर्णित सेटअप चरणों की आवश्यकता होती है। यह लागू होता है चाहे आप क्लाउड फ़ंक्शंस शेल या
firebase emulators:start
का उपयोग कर रहे हों।
एमुलेटेड फ़ंक्शंस के लिए व्यवस्थापक क्रेडेंशियल सेट करने के लिए:
- Google क्लाउड कंसोल का सेवा खाता फलक खोलें।
- सुनिश्चित करें कि ऐप इंजन डिफ़ॉल्ट सेवा खाता चुना गया है, और कुंजी बनाएं का चयन करने के लिए दाईं ओर विकल्प मेनू का उपयोग करें।
- संकेत मिलने पर, कुंजी प्रकार के लिए JSON चुनें, और बनाएँ पर क्लिक करें।
डाउनलोड की गई कुंजी को इंगित करने के लिए अपने Google डिफ़ॉल्ट क्रेडेंशियल सेट करें:
यूनिक्स
export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json" firebase emulators:start
खिड़कियाँ
set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json firebase emulators:start
इन चरणों को पूरा करने के बाद, आपके फ़ंक्शन परीक्षण, Admin SDK का उपयोग करके Firebase और Google API तक पहुंच सकते हैं। उदाहरण के लिए, प्रमाणीकरण ट्रिगर का परीक्षण करते समय, एमुलेटेड फ़ंक्शन admin.auth().getUserByEmail(email)
को कॉल कर सकता है।
फ़ंक्शन कॉन्फ़िगरेशन सेट करें (वैकल्पिक)
यदि आप कस्टम फ़ंक्शन कॉन्फ़िगरेशन चर का उपयोग कर रहे हैं, तो पहले अपने स्थानीय वातावरण में अपना कस्टम कॉन्फ़िगरेशन (इसे 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
कमांड आपके द्वारा अपने स्थानीय प्रोजेक्ट में firebase init
का उपयोग करके इनिशियलाइज़ किए गए उत्पादों के आधार पर क्लाउड फ़ंक्शंस, क्लाउड फायरस्टोर, रियलटाइम डेटाबेस और फायरबेस होस्टिंग के लिए एमुलेटर शुरू करेगा। यदि आप एक विशेष एमुलेटर शुरू करना चाहते हैं, तो --only
ध्वज का उपयोग करें:
firebase emulators:start --only functions
यदि आप एमुलेटर शुरू होने के बाद टेस्ट सूट या टेस्टिंग स्क्रिप्ट चलाना चाहते हैं, तो एमुलेटर का उपयोग करें 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")
Web version 9
import { getApp } from "firebase/app"; import { getFunctions, connectFunctionsEmulator } from "firebase/functions"; const functions = getFunctions(getApp()); connectFunctionsEmulator(functions, "localhost", 5001);
Web version 8
firebase.functions().useEmulator("localhost", 5001);
HTTPS फंक्शन एमुलेशन के लिए अपने ऐप को इंस्ट्रुमेंट करें
आपके कोड में प्रत्येक HTTPS फ़ंक्शन निम्न URL प्रारूप का उपयोग करके स्थानीय एमुलेटर से परोसा जाएगा:
http:// $HOST : $PORT / $PROJECT / $REGION / $NAME
उदाहरण के लिए डिफ़ॉल्ट होस्ट पोर्ट और क्षेत्र के साथ एक साधारण helloWorld
फ़ंक्शन यहां परोसा जाएगा:
https://localhost:5001/ $PROJECT /us-central1/helloWorld
बैकग्राउंड-ट्रिगर फंक्शन एमुलेशन के लिए अपने ऐप को इंस्ट्रुमेंट करें
क्लाउड फ़ंक्शंस एमुलेटर निम्नलिखित स्रोतों से पृष्ठभूमि-ट्रिगर फ़ंक्शंस का समर्थन करता है:
- रीयलटाइम डेटाबेस एमुलेटर
- क्लाउड फायरस्टोर एमुलेटर
- प्रमाणीकरण एमुलेटर
- पब/उप एमुलेटर
पृष्ठभूमि ईवेंट ट्रिगर करने के लिए, अपने प्लेटफ़ॉर्म के लिए SDK का उपयोग करके अपने ऐप या परीक्षण कोड को एमुलेटर से कनेक्ट करें।
अन्य सेवाओं के साथ सहभागिता
एमुलेटर सूट में कई एमुलेटर शामिल हैं, जो क्रॉस-प्रोडक्ट इंटरैक्शन के परीक्षण को सक्षम करते हैं।
क्लाउड फायरस्टोर
अगर आपके पास ऐसे फ़ंक्शन हैं जो क्लाउड फायरस्टोर को लिखने के लिए फायरबेस एडमिन एसडीके का उपयोग करते हैं, तो ये लेखन क्लाउड फायरस्टोर एमुलेटर को भेजे जाएंगे यदि यह चल रहा है। यदि आगे के कार्यों को उन लिखने वालों द्वारा ट्रिगर किया जाता है, तो वे क्लाउड फ़ंक्शंस एमुलेटर में चलाए जाएंगे।
घन संग्रहण
यदि आपके पास ऐसे फ़ंक्शन हैं जो क्लाउड स्टोरेज को लिखने के लिए फायरबेस एडमिन एसडीके (संस्करण 9.7.0 या उच्चतर) का उपयोग करते हैं, तो ये लेखन क्लाउड स्टोरेज एमुलेटर को भेजे जाएंगे यदि यह चल रहा है। यदि आगे के कार्यों को उन लिखने वालों द्वारा ट्रिगर किया जाता है, तो वे क्लाउड फ़ंक्शंस एमुलेटर में चलाए जाएंगे।
फायरबेस प्रमाणीकरण
अगर आपके पास ऐसे फ़ंक्शन हैं जो Firebase प्रमाणीकरण को लिखने के लिए Firebase Admin SDK (संस्करण 9.3.0 या उच्चतर) का उपयोग करते हैं, तो ये लेखन प्रामाणिक एमुलेटर को भेजे जाएंगे यदि यह चल रहा है। यदि आगे के कार्यों को उन लिखने वालों द्वारा ट्रिगर किया जाता है, तो वे क्लाउड फ़ंक्शंस एमुलेटर में चलाए जाएंगे।
फायरबेस होस्टिंग
यदि आप फायरबेस होस्टिंग के लिए गतिशील सामग्री उत्पन्न करने के लिए क्लाउड फ़ंक्शंस का उपयोग कर रहे हैं, तो firebase emulators:start
होस्टिंग के लिए प्रॉक्सी के रूप में आपके स्थानीय HTTP फ़ंक्शन का उपयोग करता है।
लॉगिंग
एम्यूलेटर आपके कार्यों से लॉग को टर्मिनल विंडो पर स्ट्रीम करता है जहां वे चलते हैं। यह आपके कार्यों के अंदर console.log()
, console.info()
, console.error()
, और console.warn()
कथनों से सभी आउटपुट प्रदर्शित करता है।
अगले कदम
फायरबेस एमुलेटर सूट का उपयोग करने के पूर्ण उदाहरण के लिए, परीक्षण क्विकस्टार्ट नमूना देखें।