अपने ऐप के साथ एक्सटेंशन एम्यूलेटर का उपयोग करने से पहले, सुनिश्चित करें कि आप समग्र फायरबेस लोकल एम्यूलेटर सूट वर्कफ़्लो को समझते हैं , और यह कि आप लोकल एम्यूलेटर सूट को स्थापित और कॉन्फ़िगर करते हैं और इसके सीएलआई कमांड की समीक्षा करते हैं।
यह मार्गदर्शिका यह भी मानती है कि आप Firebase एक्सटेंशन और अपने Firebase ऐप्स में उनका उपयोग करने के तरीके से परिचित हैं।
मैं एक्सटेंशन एम्यूलेटर के साथ क्या कर सकता हूं?
एक्सटेंशन एमुलेटर के साथ, आप सुरक्षित स्थानीय वातावरण में एक्सटेंशन इंस्टॉल और प्रबंधित कर सकते हैं और बिलिंग लागत को कम करते हुए उनकी क्षमताओं को बेहतर ढंग से समझ सकते हैं। एमुलेटर आपके एक्सटेंशन के कार्यों को स्थानीय रूप से चलाता है, जिसमें क्लाउड फायरस्टोर, रीयलटाइम डेटाबेस, फायरबेस के लिए क्लाउड स्टोरेज, ऑथेंटिकेशन और पब/सब, और क्लाउड फ़ंक्शंस v2 में कार्यान्वित ईवेंट-ट्रिगर फ़ंक्शंस के लिए एमुलेटर का उपयोग करके बैकग्राउंड इवेंट-ट्रिगर फ़ंक्शंस शामिल हैं।
एक फायरबेस प्रोजेक्ट चुनें
फायरबेस लोकल इम्यूलेटर सुइट एकल फायरबेस प्रोजेक्ट के लिए उत्पादों का अनुकरण करता है।
उपयोग करने के लिए प्रोजेक्ट का चयन करने के लिए, आप एमुलेटर शुरू करने से पहले, CLI रन firebase use
। या, आप प्रत्येक एमुलेटर कमांड को --project
फ्लैग पास कर सकते हैं।
स्थानीय इम्यूलेटर सूट वास्तविक फायरबेस परियोजनाओं और डेमो परियोजनाओं के अनुकरण का समर्थन करता है।
परियोजना प्रकार | विशेषताएँ | एमुलेटर के साथ प्रयोग करें |
---|---|---|
असली | एक वास्तविक फायरबेस प्रोजेक्ट वह है जिसे आपने बनाया और कॉन्फ़िगर किया है (सबसे अधिक संभावना फायरबेस कंसोल के माध्यम से)। वास्तविक परियोजनाओं में लाइव संसाधन होते हैं, जैसे डेटाबेस इंस्टेंसेस, स्टोरेज बकेट, फ़ंक्शंस, या आपके द्वारा उस फायरबेस प्रोजेक्ट के लिए सेट किया गया कोई अन्य संसाधन। | वास्तविक फायरबेस परियोजनाओं के साथ काम करते समय, आप किसी भी या सभी समर्थित उत्पादों के लिए एमुलेटर चला सकते हैं। आप जिन उत्पादों का अनुकरण नहीं कर रहे हैं, उनके लिए आपके ऐप्स और कोड लाइव संसाधन (डेटाबेस उदाहरण, स्टोरेज बकेट, फ़ंक्शन, आदि) के साथ इंटरैक्ट करेंगे। |
डेमो | एक डेमो फायरबेस प्रोजेक्ट में कोई वास्तविक फायरबेस कॉन्फ़िगरेशन नहीं है और कोई लाइव संसाधन नहीं है। इन परियोजनाओं को आमतौर पर कोडलैब या अन्य ट्यूटोरियल्स के माध्यम से एक्सेस किया जाता है। डेमो प्रोजेक्ट के लिए प्रोजेक्ट आईडी में | डेमो फायरबेस प्रोजेक्ट के साथ काम करते समय, आपके ऐप्स और कोड केवल इम्यूलेटर के साथ इंटरैक्ट करते हैं। यदि आपका ऐप किसी ऐसे संसाधन से इंटरैक्ट करने का प्रयास करता है जिसके लिए कोई एमुलेटर नहीं चल रहा है, तो वह कोड विफल हो जाएगा। |
हम अनुशंसा करते हैं कि आप जहाँ भी संभव हो डेमो प्रोजेक्ट का उपयोग करें। लाभों में शामिल हैं:
- आसान सेटअप, चूंकि आप कभी भी फायरबेस प्रोजेक्ट बनाए बिना एमुलेटर चला सकते हैं
- मजबूत सुरक्षा, चूंकि यदि आपका कोड गलती से गैर-अनुकरणीय (उत्पादन) संसाधनों को आमंत्रित करता है, तो डेटा परिवर्तन, उपयोग और बिलिंग का कोई मौका नहीं है
- बेहतर ऑफ़लाइन समर्थन, क्योंकि आपके SDK कॉन्फ़िगरेशन को डाउनलोड करने के लिए इंटरनेट का उपयोग करने की कोई आवश्यकता नहीं है।
एक एक्सटेंशन स्थापित करें और उसका मूल्यांकन करें
एक्सटेंशन एमुलेटर का उपयोग यह मूल्यांकन करने के लिए करता है कि कोई एक्सटेंशन आपकी आवश्यकताओं को पूरा करता है या नहीं।
आइए मान लें कि आप ट्रिगर ईमेल ( firestore-send-email
) एक्सटेंशन में रुचि रखते हैं, हालांकि निम्न कार्यप्रवाह में कोई भी एक्सटेंशन शामिल है। जब स्थानीय एमुलेटर के साथ चलाया जाता है, तो ट्रिगर ईमेल स्वचालित रूप से क्लाउड फायरस्टोर और क्लाउड फ़ंक्शंस एमुलेटर का उपयोग करेगा।
किसी एक्सटेंशन का स्थानीय रूप से मूल्यांकन करने के लिए:
एक्सटेंशन को स्थानीय एक्सटेंशन मेनिफेस्ट में जोड़ें। एक एक्सटेंशन मेनिफेस्ट एक्सटेंशन उदाहरणों और उनके कॉन्फ़िगरेशन की एक सूची है।
firebase ext:install --local firebase/firestore-send-email
उपरोक्त आदेश चलाने से आपको
firebase/firestore-send-email
एक्सटेंशन के नवीनतम संस्करण को कॉन्फ़िगर करने और कॉन्फ़िगरेशन को मेनिफेस्ट में सहेजने के लिए कहा जाएगा, लेकिन यह आपके प्रोजेक्ट में कॉन्फ़िगरेशन को तैनात नहीं करेगा। इसके बारे में अधिक जानकारी के लिए, मेनिफ़ेस्ट के साथ एक्सटेंशन कॉन्फ़िगरेशन प्रबंधित करें देखेंस्थानीय एम्यूलेटर सुइट को सामान्य रूप से प्रारंभ करें।
firebase emulators:start
अब, आपके मेनिफेस्ट में सूचीबद्ध firestore-send-email
एक्सटेंशन इंस्टेंस का उपयोग करके, स्थानीय एमुलेटर सूट उस एक्सटेंशन के स्रोत कोड ~/.cache/firebase/extensions
में डाउनलोड करेगा। एक बार स्रोत डाउनलोड हो जाने के बाद, स्थानीय इम्यूलेटर सूट शुरू हो जाएगा और आप किसी भी एक्सटेंशन की पृष्ठभूमि ट्रिगर फ़ंक्शन को ट्रिगर करने में सक्षम होंगे और अपने ऐप को अपने ऐप के साथ अपने एकीकरण का परीक्षण करने के लिए स्थानीय एमुलेटर सूट से कनेक्ट कर सकेंगे।
आप ईमेल दस्तावेज़ संग्रह में डेटा जोड़ने और अन्य बैकएंड संसाधनों को सेट करने के लिए एमुलेटर सूट यूआई का उपयोग कर सकते हैं, जैसा कि ट्रिगर ईमेल एक्सटेंशन द्वारा आवश्यक है।
वैकल्पिक रूप से, निरंतर एकीकरण वर्कफ़्लो जैसे गैर-संवादात्मक परीक्षण परिवेशों के लिए, आप एक्सटेंशन का मूल्यांकन करने के लिए एक परीक्षण स्क्रिप्ट लिख सकते हैं, जो अन्य चरणों के बीच आवश्यक क्लाउड फायरस्टोर डेटा को पॉप्युलेट करता है और फ़ंक्शन को ट्रिगर करता है। फिर आप अपनी टेस्ट स्क्रिप्ट को निष्पादित करने के लिए स्थानीय एमुलेटर सूट का आह्वान करेंगे:
firebase emulators:exec my-test.sh
एक्सटेंशन एमुलेटर के साथ परीक्षण उत्पादन से कैसे भिन्न होता है
एक्सटेंशन एमुलेटर आपको एक्सटेंशन का परीक्षण इस तरह करने देता है जो उत्पादन अनुभव से निकटता से मेल खाता हो। हालांकि, उत्पादन व्यवहार से कुछ अंतर हैं।
बादल आईएएम
फायरबेस एम्यूलेटर सूट चलाने के लिए किसी भी आईएएम-संबंधित व्यवहार को दोहराने या उसका सम्मान करने का प्रयास नहीं करता है। एमुलेटर प्रदान किए गए फायरबेस सुरक्षा नियमों का पालन करते हैं, लेकिन ऐसी स्थितियों में जहां IAM का सामान्य रूप से उपयोग किया जाएगा, उदाहरण के लिए सेवा खाते को लागू करने वाले क्लाउड फ़ंक्शंस सेट करने के लिए और इस प्रकार अनुमतियां, एमुलेटर कॉन्फ़िगर करने योग्य नहीं है और आपकी डेवलपर मशीन पर विश्व स्तर पर उपलब्ध खाते का उपयोग करेगा, सीधे स्थानीय स्क्रिप्ट चलाने के समान।
ट्रिगरिंग प्रकार की सीमा
वर्तमान में, फायरबेस स्थानीय एमुलेटर सूट केवल HTTP अनुरोध-ट्रिगर किए गए कार्यों का समर्थन करता है, एक्सटेंशन के लिए इवेंटआर्क कस्टम इवेंट ट्रिगर करता है, और क्लाउड फायरस्टोर, रीयलटाइम डेटाबेस, फायरबेस के लिए क्लाउड स्टोरेज, प्रमाणीकरण और पब/उप के लिए बैकग्राउंड इवेंट-ट्रिगर फ़ंक्शन करता है। अन्य प्रकार के ट्रिगर फ़ंक्शन का उपयोग करने वाले एक्सटेंशन का मूल्यांकन करने के लिए, आपको अपने एक्सटेंशन को एक परीक्षण Firebase प्रोजेक्ट में इंस्टॉल करना होगा।
आगे क्या?
- वीडियो के क्युरेट किए गए सेट और विस्तृत कैसे करें उदाहरणों के लिए, Firebase Emulators प्रशिक्षण प्लेलिस्ट का अनुसरण करें।