अपने ऐप्लिकेशन के साथ Extensions एमुलेटर का इस्तेमाल करने से पहले, पक्का करें कि आपने Firebase Local Emulator Suite वर्कफ़्लो को पूरी तरह से समझ लिया हो. साथ ही, आपने Local Emulator Suite को इंस्टॉल और कॉन्फ़िगर कर लिया हो और इसके सीएलआई कमांड की समीक्षा कर ली हो.
इस गाइड में यह भी माना गया है कि आपको Firebase Extensions और अपने Firebase ऐप्लिकेशन में इनका इस्तेमाल करने का तरीका पता है.
Extensions एमुलेटर की मदद से क्या किया जा सकता है?
Extensions एमुलेटर की मदद से, सुरक्षित लोकल एनवायरमेंट में एक्सटेंशन इंस्टॉल और मैनेज किए जा सकते हैं. साथ ही, बिलिंग की लागत को कम करते हुए, उनकी क्षमताओं को बेहतर तरीके से समझा जा सकता है. एमुलेटर, आपके एक्सटेंशन के फ़ंक्शन को स्थानीय तौर पर चलाता है. इनमें, Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication, और Pub/Sub के लिए एमुलेटर का इस्तेमाल करके, बैकग्राउंड इवेंट से ट्रिगर होने वाले फ़ंक्शन और Cloud Functions v2 में लागू किए गए Eventarc से ट्रिगर होने वाले फ़ंक्शन शामिल हैं.
कोई Firebase प्रोजेक्ट चुनना
Firebase Local Emulator Suite, किसी एक Firebase प्रोजेक्ट के लिए प्रॉडक्ट को एमुलेट करता है.
इस्तेमाल करने के लिए प्रोजेक्ट चुनने के लिए, एमुलेटर शुरू करने से पहले, अपनी वर्किंग डायरेक्ट्री में सीएलआई में firebase use
चलाएं. इसके अलावा, हर एमुलेटर कमांड के लिए --project
फ़्लैग पास किया जा सकता है.
Local Emulator Suite, असल Firebase प्रोजेक्ट और डेमो प्रोजेक्ट को एमुलेट करता है.
प्रोजेक्ट का टाइप | सुविधाएं | एम्युलेटर के साथ इस्तेमाल करना |
---|---|---|
रीयल |
असल Firebase प्रोजेक्ट वह होता है जिसे आपने बनाया और कॉन्फ़िगर किया है. ऐसा ज़्यादातर मामलों में, Firebase कंसोल के ज़रिए किया जाता है. असल प्रोजेक्ट में लाइव रिसॉर्स होते हैं. जैसे, डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन या कोई भी ऐसा रिसॉर्स जिसे आपने उस Firebase प्रोजेक्ट के लिए सेट अप किया है. |
असल Firebase प्रोजेक्ट के साथ काम करते समय, किसी भी या सभी काम करने वाले प्रॉडक्ट के लिए, इम्युलेटर चलाए जा सकते हैं. जिन प्रॉडक्ट को एमुलेट नहीं किया जा रहा है उनके लिए, आपके ऐप्लिकेशन और कोड, लाइव रिसॉर्स (डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन वगैरह) के साथ इंटरैक्ट करेंगे. |
डेमो |
डेमो Firebase प्रोजेक्ट में, असल Firebase कॉन्फ़िगरेशन और लाइव संसाधन नहीं होते. आम तौर पर, इन प्रोजेक्ट को कोडलैब या अन्य ट्यूटोरियल की मदद से ऐक्सेस किया जाता है. डेमो प्रोजेक्ट के प्रोजेक्ट आईडी में |
डेमो Firebase प्रोजेक्ट के साथ काम करते समय, आपके ऐप्लिकेशन और कोड, सिर्फ़ एमुलेटर के साथ इंटरैक्ट करते हैं. अगर आपका ऐप्लिकेशन किसी ऐसे संसाधन के साथ इंटरैक्ट करने की कोशिश करता है जिसका कोई एमुलेटर नहीं चल रहा है, तो वह कोड काम नहीं करेगा. |
हमारा सुझाव है कि जहां भी हो सके वहां डेमो प्रोजेक्ट का इस्तेमाल करें. इसके ये फ़ायदे हैं:
- आसान सेटअप, क्योंकि Firebase प्रोजेक्ट बनाए बिना ही एमुलेटर चलाए जा सकते हैं
- ज़्यादा सुरक्षित, क्योंकि अगर आपका कोड गलती से एमुलेट किए गए (प्रोडक्शन) संसाधनों को ट्रिगर करता है, तो डेटा में बदलाव, इस्तेमाल, और बिलिंग की संभावना नहीं होती
- बेहतर ऑफ़लाइन सहायता, क्योंकि SDK टूल का कॉन्फ़िगरेशन डाउनलोड करने के लिए, इंटरनेट का ऐक्सेस करने की ज़रूरत नहीं होती.
एक्सटेंशन इंस्टॉल करना और उसका आकलन करना
Extensions एमुलेटर का इस्तेमाल करके, यह पता लगाना आसान है कि कोई एक्सटेंशन आपकी ज़रूरतों के मुताबिक है या नहीं.
मान लें कि आपकी दिलचस्पी ट्रिगर ईमेल (firestore-send-email
) एक्सटेंशन में है. हालांकि, यहां दिया गया वर्कफ़्लो किसी भी एक्सटेंशन पर लागू होता है. स्थानीय इम्यूलेटर के साथ चलाए जाने पर, ट्रिगर ईमेल अपने-आप Cloud Firestore और Cloud Functions इम्यूलेटर का इस्तेमाल करेगा.
किसी एक्सटेंशन का स्थानीय तौर पर आकलन करने के लिए:
एक्सटेंशन को लोकल एक्सटेंशन मेनिफ़ेस्ट में जोड़ें. एक्सटेंशन मेनिफ़ेस्ट, एक्सटेंशन इंस्टेंस और उनके कॉन्फ़िगरेशन की सूची होती है.
firebase ext:install --local firebase/firestore-send-email
ऊपर दिया गया निर्देश चलाने पर, आपको
firebase/firestore-send-email
एक्सटेंशन के नए वर्शन को कॉन्फ़िगर करने और कॉन्फ़िगरेशन को मेनिफ़ेस्ट में सेव करने के लिए कहा जाएगा. हालांकि, इससे कॉन्फ़िगरेशन आपके प्रोजेक्ट में डिप्लॉय नहीं होगा. इस बारे में ज़्यादा जानने के लिए, मेनिफ़ेस्ट की मदद से एक्सटेंशन कॉन्फ़िगरेशन मैनेज करना लेख पढ़ेंLocal Emulator Suite को सामान्य तरीके से शुरू करें.
firebase emulators:start
अब, आपके मेनिफ़ेस्ट में दिए गए firestore-send-email
एक्सटेंशन इंस्टेंस का इस्तेमाल करके, Local Emulator Suite उस एक्सटेंशन का सोर्स कोड ~/.cache/firebase/extensions
में डाउनलोड करेगा. सोर्स डाउनलोड होने के बाद, Local Emulator Suite शुरू हो जाएगा. इसके बाद, एक्सटेंशन के बैकग्राउंड में ट्रिगर होने वाले किसी भी फ़ंक्शन को ट्रिगर किया जा सकता है. साथ ही, अपने ऐप्लिकेशन के साथ इंटिग्रेशन की जांच करने के लिए, अपने ऐप्लिकेशन को Local Emulator Suite से कनेक्ट किया जा सकता है.
ईमेल दस्तावेज़ों के कलेक्शन में डेटा जोड़ने और ट्रिगर ईमेल एक्सटेंशन की ज़रूरत के हिसाब से, बैकएंड के अन्य संसाधनों को सेट अप करने के लिए, Emulator Suite UI का इस्तेमाल किया जा सकता है.
इसके अलावा, लगातार इंटिग्रेशन वर्कफ़्लो जैसे नॉन-इंटरैक्टिव टेस्टिंग एनवायरमेंट के लिए, एक्सटेंशन का आकलन करने के लिए एक टेस्ट स्क्रिप्ट लिखी जा सकती है. यह स्क्रिप्ट, अन्य चरणों के साथ-साथ ज़रूरी Cloud Firestore डेटा को पॉप्युलेट करती है और फ़ंक्शन को ट्रिगर करती है. इसके बाद, अपनी टेस्ट स्क्रिप्ट को लागू करने के लिए, Local Emulator Suite को लागू करें:
firebase emulators:exec my-test.sh
Extensions एमुलेटर की मदद से टेस्टिंग करने की प्रोसेस, प्रोडक्शन ट्रैक से कैसे अलग है
Extensions एमुलेटर की मदद से, एक्सटेंशन को इस तरह से टेस्ट किया जा सकता है कि वह प्रोडक्शन वर्शन के अनुभव से काफ़ी हद तक मेल खाता हो. हालांकि, इसमें प्रोडक्शन के व्यवहार से कुछ अंतर हैं.
Cloud IAM
Firebase Emulator Suite, रन करने के लिए IAM से जुड़े किसी भी व्यवहार को दोहराने या उसका पालन करने की कोशिश नहीं करता. एमुलेटर, Firebase के दिए गए सुरक्षा नियमों का पालन करते हैं. हालांकि, जिन स्थितियों में आम तौर पर IAM का इस्तेमाल किया जाता है, जैसे कि सेवा खाते को कॉल करने वाले Cloud Functions को सेट करने के लिए और इस तरह अनुमतियां देने के लिए, एमुलेटर को कॉन्फ़िगर नहीं किया जा सकता. साथ ही, यह सीधे तौर पर किसी लोकल स्क्रिप्ट को चलाने की तरह, आपकी डेवलपर मशीन पर दुनिया भर में उपलब्ध खाते का इस्तेमाल करेगा.
ट्रिगर करने के तरीके की सीमा
फ़िलहाल, Firebase Local Emulator Suite सिर्फ़ एचटीटीपी अनुरोध से ट्रिगर होने वाले फ़ंक्शन, एक्सटेंशन के लिए Eventarc के कस्टम इवेंट ट्रिगर, और Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication, और Pub/Sub के लिए बैकग्राउंड इवेंट से ट्रिगर होने वाले फ़ंक्शन के साथ काम करता है. ट्रिगर किए गए अन्य तरह के फ़ंक्शन का इस्तेमाल करने वाले एक्सटेंशन का आकलन करने के लिए, आपको किसी टेस्ट Firebase प्रोजेक्ट में अपना एक्सटेंशन इंस्टॉल करना होगा.
आगे क्या करना है?
- वीडियो के चुने गए सेट और सिलसिलेवार निर्देशों के उदाहरणों के लिए, Firebase एमुलेटर ट्रेनिंग प्लेलिस्ट देखें.