अपने ऐप्लिकेशन के साथ 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 एमुलेटर ट्रेनिंग प्लेलिस्ट देखें.