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

अपने ऐप्लिकेशन के साथ Extensions एम्युलेटर का इस्तेमाल करने से पहले, पक्का करें कि आपको पूरे Firebase Local Emulator Suite वर्कफ़्लोके बारे में पता हो . साथ ही, आपने Local Emulator Suite को इंस्टॉल और कॉन्फ़िगरकिया हो . इसके अलावा, आपने इसके सीएलआई कमांडकी समीक्षा की हो.

इस गाइड में यह भी माना गया है कि आपको Firebase Extensions और उन्हें अपने Firebase ऐप्लिकेशन में इस्तेमाल करने के तरीके के बारे में पता है.

Extensions एम्युलेटर की मदद से क्या किया जा सकता है?

Extensions एम्युलेटर की मदद से, सुरक्षित लोकल एनवायरमेंट में एक्सटेंशन इंस्टॉल और मैनेज किए जा सकते हैं. साथ ही, बिलिंग की लागत कम करते हुए, उनकी क्षमताओं को बेहतर तरीके से समझा जा सकता है. एम्युलेटर, आपके एक्सटेंशन के फ़ंक्शन को स्थानीय तौर पर चलाता है. इनमें बैकग्राउंड इवेंट से ट्रिगर होने वाले फ़ंक्शन भी शामिल हैं. इसके लिए, Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication और Pub/Sub, और Eventarc से ट्रिगर होने वाले फ़ंक्शन के लिए एम्युलेटर का इस्तेमाल किया जाता है. साथ ही, Cloud Functions v2 में लागू किए गए फ़ंक्शन भी शामिल हैं.

कोई Firebase प्रोजेक्ट चुनें

Firebase Local Emulator Suite एक Firebase प्रोजेक्ट के लिए प्रॉडक्ट की नकल करता है.

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

Local Emulator Suite असली Firebase प्रोजेक्ट और डेमो प्रोजेक्ट की नकल करने की सुविधा देता है.

प्रोजेक्ट का टाइप सुविधाएं एम्युलेटर के साथ इस्तेमाल करना
असली

असली Firebase प्रोजेक्ट वह होता है जिसे आपने बनाया और कॉन्फ़िगर किया है. आम तौर पर, इसे Firebase कंसोल के ज़रिए बनाया और कॉन्फ़िगर किया जाता है.

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

असली Firebase प्रोजेक्ट के साथ काम करते समय, आपके पास सहायता पाने वाले किसी भी या सभी प्रॉडक्ट के लिए एम्युलेटर चलाने का विकल्प होता है.

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

डेमो

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

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

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

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

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

कोई एक्सटेंशन इंस्टॉल करना और उसकी समीक्षा करना

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

मान लें कि आपको Trigger Email (firestore-send-email) एक्सटेंशन में दिलचस्पी है. हालांकि, यहां बताया गया वर्कफ़्लो किसी भी एक्सटेंशन पर लागू होता है. लोकल एम्युलेटर के साथ चलाने पर, Trigger 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 का इस्तेमाल करके, ईमेल दस्तावेज़ों के कलेक्शन में डेटा जोड़ा जा सकता है और Trigger Email एक्सटेंशन की ज़रूरत के मुताबिक, अन्य बैकएंड संसाधन सेट अप किए जा सकते हैं.

इसके अलावा, लगातार इंटिग्रेशन वर्कफ़्लो जैसे नॉन-इंटरैक्टिव टेस्टिंग एनवायरमेंट के लिए, एक्सटेंशन की समीक्षा करने के लिए टेस्ट स्क्रिप्ट लिखी जा सकती है. इसमें अन्य चरणों के अलावा, ज़रूरी 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 प्रोजेक्ट में इंस्टॉल करना होगा.

इसके बाद क्या करना है?