एक्सटेंशन का मूल्यांकन करने के लिए एक्सटेंशन एमुलेटर का उपयोग करें

अपने ऐप के साथ एक्सटेंशन एमुलेटर का उपयोग करने से पहले, सुनिश्चित करें कि आप समग्र फायरबेस लोकल एमुलेटर सूट वर्कफ़्लो को समझते हैं , और आप लोकल एमुलेटर सूट को इंस्टॉल और कॉन्फ़िगर करते हैं और इसके सीएलआई कमांड की समीक्षा करते हैं।

यह मार्गदर्शिका यह भी मानती है कि आप फ़ायरबेस एक्सटेंशन से परिचित हैं और अपने फ़ायरबेस ऐप्स में उनका उपयोग कैसे करें।

मैं एक्सटेंशन एमुलेटर के साथ क्या कर सकता हूं?

एक्सटेंशन एमुलेटर के साथ, आप सुरक्षित स्थानीय वातावरण में एक्सटेंशन इंस्टॉल और प्रबंधित कर सकते हैं और बिलिंग लागत को कम करते हुए उनकी क्षमताओं को बेहतर ढंग से समझ सकते हैं। एमुलेटर आपके एक्सटेंशन के कार्यों को स्थानीय रूप से चलाता है, जिसमें क्लाउड फायरस्टोर, रीयलटाइम डेटाबेस, फायरबेस के लिए क्लाउड स्टोरेज, प्रमाणीकरण और पब/सब के लिए एमुलेटर का उपयोग करके पृष्ठभूमि इवेंट-ट्रिगर फ़ंक्शन और क्लाउड फ़ंक्शंस v2 में कार्यान्वित इवेंटर्क-ट्रिगर फ़ंक्शन शामिल हैं।

एक फायरबेस प्रोजेक्ट चुनें

फायरबेस लोकल एमुलेटर सुइट एकल फायरबेस प्रोजेक्ट के लिए उत्पादों का अनुकरण करता है।

उपयोग करने के लिए प्रोजेक्ट का चयन करने के लिए, एमुलेटर शुरू करने से पहले, सीएलआई में अपनी कार्यशील निर्देशिका में firebase use । या, आप प्रत्येक एमुलेटर कमांड को --project फ़्लैग पास कर सकते हैं।

स्थानीय एमुलेटर सुइट वास्तविक फायरबेस परियोजनाओं और डेमो परियोजनाओं के अनुकरण का समर्थन करता है।

परियोजना प्रकार विशेषताएँ एम्यूलेटर के साथ प्रयोग करें
असली

एक वास्तविक फ़ायरबेस प्रोजेक्ट वह है जिसे आपने बनाया और कॉन्फ़िगर किया है (संभवतः फ़ायरबेस कंसोल के माध्यम से)।

वास्तविक परियोजनाओं में लाइव संसाधन होते हैं, जैसे डेटाबेस इंस्टेंसेस, स्टोरेज बकेट, फ़ंक्शन, या आपके द्वारा उस फायरबेस प्रोजेक्ट के लिए सेट किया गया कोई अन्य संसाधन।

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

किसी भी उत्पाद के लिए जिसका आप अनुकरण नहीं कर रहे हैं, आपके ऐप्स और कोड लाइव संसाधन (डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन इत्यादि) के साथ इंटरैक्ट करेंगे।

डेमो

डेमो फ़ायरबेस प्रोजेक्ट में कोई वास्तविक फ़ायरबेस कॉन्फ़िगरेशन नहीं है और कोई लाइव संसाधन नहीं है। इन परियोजनाओं को आमतौर पर कोडलैब या अन्य ट्यूटोरियल के माध्यम से एक्सेस किया जाता है।

डेमो प्रोजेक्ट के लिए प्रोजेक्ट आईडी में demo- उपसर्ग होता है।

डेमो फायरबेस प्रोजेक्ट्स के साथ काम करते समय, आपके ऐप्स और कोड केवल एमुलेटर के साथ इंटरैक्ट करते हैं। यदि आपका ऐप किसी ऐसे संसाधन के साथ इंटरैक्ट करने का प्रयास करता है जिसके लिए एमुलेटर नहीं चल रहा है, तो वह कोड विफल हो जाएगा।

हम अनुशंसा करते हैं कि आप जहां भी संभव हो डेमो प्रोजेक्ट का उपयोग करें। लाभों में शामिल हैं:

  • आसान सेटअप, क्योंकि आप कभी भी फायरबेस प्रोजेक्ट बनाए बिना एमुलेटर चला सकते हैं
  • मजबूत सुरक्षा, क्योंकि यदि आपका कोड गलती से गैर-अनुकरणित (उत्पादन) संसाधनों का आह्वान करता है, तो डेटा परिवर्तन, उपयोग और बिलिंग की कोई संभावना नहीं है
  • बेहतर ऑफ़लाइन समर्थन, क्योंकि आपके एसडीके कॉन्फ़िगरेशन को डाउनलोड करने के लिए इंटरनेट तक पहुंचने की कोई आवश्यकता नहीं है।

किसी एक्सटेंशन को स्थापित करें और उसका मूल्यांकन करें

कोई एक्सटेंशन आपकी आवश्यकताओं को पूरा करता है या नहीं, इसका मूल्यांकन करने के लिए एक्सटेंशन एमुलेटर का उपयोग करना सीधा है।

आइए मान लें कि आप ट्रिगर ईमेल ( firestore-send-email ) एक्सटेंशन में रुचि रखते हैं, हालांकि निम्नलिखित वर्कफ़्लो किसी भी एक्सटेंशन को कवर करता है। जब स्थानीय एमुलेटर के साथ चलाया जाता है, तो ट्रिगर ईमेल स्वचालित रूप से क्लाउड फायरस्टोर और क्लाउड फ़ंक्शंस एमुलेटर का उपयोग करेगा।

किसी एक्सटेंशन का स्थानीय स्तर पर मूल्यांकन करने के लिए:

  1. एक्सटेंशन को स्थानीय एक्सटेंशन मेनिफ़ेस्ट में जोड़ें। एक्सटेंशन मेनिफेस्ट एक्सटेंशन इंस्टेंस और उनके कॉन्फ़िगरेशन की एक सूची है।

    firebase ext:install --local firebase/firestore-send-email

    उपरोक्त कमांड चलाने से आपको firebase/firestore-send-email एक्सटेंशन के नवीनतम संस्करण को कॉन्फ़िगर करने और कॉन्फ़िगरेशन को मेनिफेस्ट में सहेजने के लिए प्रेरित किया जाएगा, लेकिन यह कॉन्फ़िगरेशन को आपके प्रोजेक्ट पर तैनात नहीं करेगा। इसके बारे में अधिक जानकारी के लिए, मैनिफ़ेस्ट के साथ एक्सटेंशन कॉन्फ़िगरेशन प्रबंधित करें देखें

  2. स्थानीय एमुलेटर सुइट को वैसे ही प्रारंभ करें जैसे आप सामान्य रूप से करते हैं।

    firebase emulators:start

अब, आपके मेनिफेस्ट में सूचीबद्ध firestore-send-email एक्सटेंशन इंस्टेंस का उपयोग करके, स्थानीय एमुलेटर सूट उस एक्सटेंशन के स्रोत कोड को ~/.cache/firebase/extensions पर डाउनलोड करेगा। एक बार सोर्स डाउनलोड हो जाने के बाद, स्थानीय एमुलेटर सूट शुरू हो जाएगा और आप एक्सटेंशन के किसी भी पृष्ठभूमि ट्रिगर फ़ंक्शन को ट्रिगर करने में सक्षम होंगे और अपने ऐप के साथ उनके एकीकरण का परीक्षण करने के लिए अपने ऐप को स्थानीय एमुलेटर सूट से कनेक्ट कर पाएंगे।

आप ईमेल दस्तावेज़ संग्रह में डेटा जोड़ने और ट्रिगर ईमेल एक्सटेंशन की आवश्यकता के अनुसार अन्य बैकएंड संसाधन सेट करने के लिए एमुलेटर सूट यूआई का उपयोग कर सकते हैं।

वैकल्पिक रूप से, निरंतर एकीकरण वर्कफ़्लो जैसे गैर-इंटरैक्टिव परीक्षण वातावरण के लिए, आप एक्सटेंशन के मूल्यांकन के लिए एक परीक्षण स्क्रिप्ट लिख सकते हैं, जो अन्य चरणों के अलावा, आवश्यक क्लाउड फायरस्टोर डेटा को पॉप्युलेट करता है और फ़ंक्शन को ट्रिगर करता है। फिर आप अपनी परीक्षण स्क्रिप्ट निष्पादित करने के लिए स्थानीय एमुलेटर सूट को लागू करेंगे:

firebase emulators:exec my-test.sh

एक्सटेंशन एमुलेटर के साथ परीक्षण उत्पादन से किस प्रकार भिन्न है

एक्सटेंशन एमुलेटर आपको एक्सटेंशन का परीक्षण इस तरह से करने देता है जो उत्पादन अनुभव से निकटता से मेल खाता हो। हालाँकि, उत्पादन व्यवहार में कुछ अंतर हैं।

बादल आईएएम

फायरबेस एमुलेटर सूट चलाने के लिए किसी भी IAM-संबंधित व्यवहार को दोहराने या उसका सम्मान करने का प्रयास नहीं करता है। एमुलेटर प्रदान किए गए फायरबेस सुरक्षा नियमों का पालन करते हैं, लेकिन उन स्थितियों में जहां आईएएम का उपयोग सामान्य रूप से किया जाएगा, उदाहरण के लिए सेवा खाते और इस प्रकार अनुमतियों को लागू करने वाले क्लाउड फ़ंक्शंस सेट करने के लिए, एमुलेटर कॉन्फ़िगर करने योग्य नहीं है और आपके डेवलपर मशीन पर विश्व स्तर पर उपलब्ध खाते का उपयोग करेगा, किसी स्थानीय स्क्रिप्ट को सीधे चलाने के समान।

ट्रिगर प्रकार की सीमा

वर्तमान में, फायरबेस लोकल एमुलेटर सूट केवल HTTP अनुरोध-ट्रिगर फ़ंक्शन, एक्सटेंशन के लिए इवेंटार्क कस्टम इवेंट ट्रिगर और क्लाउड फायरस्टोर, रीयलटाइम डेटाबेस, फायरबेस के लिए क्लाउड स्टोरेज, प्रमाणीकरण और पब/सब के लिए पृष्ठभूमि इवेंट-ट्रिगर फ़ंक्शन का समर्थन करता है। अन्य प्रकार के ट्रिगर किए गए फ़ंक्शंस का उपयोग करने वाले एक्सटेंशन का मूल्यांकन करने के लिए, आपको परीक्षण फ़ायरबेस प्रोजेक्ट में अपना एक्सटेंशन इंस्टॉल करना होगा।

आगे क्या?