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

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

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

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

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

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

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

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

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

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

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

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

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

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

डेमो

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

डेमो प्रोजेक्ट के लिए प्रोजेक्ट आईडी में 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 । एक बार सॉर्स डाउनलोड हो जाने के बाद, स्थानीय एमुलेटर सूट शुरू हो जाएगा और आप एक्सटेंशन के किसी भी पृष्ठभूमि ट्रिगर फ़ंक्शन को ट्रिगर करने में सक्षम होंगे और अपने ऐप को अपने ऐप के साथ एकीकरण का परीक्षण करने के लिए स्थानीय एमुलेटर सूट से कनेक्ट कर सकेंगे।

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

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

firebase emulators:exec my-test.sh

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

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

बादल IAM

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

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

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

आगे क्या?