एक्सटेंशन का आकलन करने के लिए, एक्सटेंशन एम्युलेटर का इस्तेमाल करना

अपने ऐप्लिकेशन के साथ 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 कॉन्फ़िगरेशन और लाइव संसाधन नहीं होते. आम तौर पर, इन प्रोजेक्ट को कोडलैब या अन्य ट्यूटोरियल की मदद से ऐक्सेस किया जाता है.

डेमो प्रोजेक्ट के प्रोजेक्ट आईडी में demo- प्रीफ़िक्स होता है.

डेमो Firebase प्रोजेक्ट के साथ काम करते समय, आपके ऐप्लिकेशन और कोड, सिर्फ़ एमुलेटर के साथ इंटरैक्ट करते हैं. अगर आपका ऐप्लिकेशन किसी ऐसे संसाधन के साथ इंटरैक्ट करने की कोशिश करता है जिसका कोई एमुलेटर नहीं चल रहा है, तो वह कोड काम नहीं करेगा.

हमारा सुझाव है कि जहां भी हो सके वहां डेमो प्रोजेक्ट का इस्तेमाल करें. सदस्यता के साथ यहां दिए गए फ़ायदे मिलते हैं:

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

एक्सटेंशन इंस्टॉल करना और उसका आकलन करना

Extensions एमुलेटर का इस्तेमाल करके, यह पता लगाना आसान है कि कोई एक्सटेंशन आपकी ज़रूरतों के मुताबिक है या नहीं.

मान लें कि आपकी दिलचस्पी ट्रिगर ईमेल (firestore-send-email) एक्सटेंशन में है. हालांकि, यहां दिया गया वर्कफ़्लो किसी भी एक्सटेंशन पर लागू होता है. स्थानीय इम्यूलेटर के साथ चलाए जाने पर, ट्रिगर ईमेल अपने-आप Cloud Firestore और Cloud Functions इम्यूलेटर का इस्तेमाल करेगा.

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

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

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

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

  2. 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 प्रोजेक्ट में अपना एक्सटेंशन इंस्टॉल करना होगा.

आगे क्या करना है?