Firebase होस्टिंग एम्युलेटर की मदद से, वेब ऐप्लिकेशन का प्रोटोटाइप बनाएं और उन्हें टेस्ट करें

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

आपको Firebase होस्टिंग की सुविधाओं और इन्हें लागू करने के वर्कफ़्लो की भी जानकारी होनी चाहिए. सबसे पहले Firebase होस्टिंग के बारे में जानकारी दें.

Firebase होस्टिंग एम्युलेटर के साथ क्या किया जा सकता है?

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

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

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

Firebase लोकल एम्युलेटर सुइट, किसी एक Firebase प्रोजेक्ट के लिए प्रॉडक्ट को एम्युलेट करता है.

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

लोकल एम्युलेटर सुइट, असली Firebase प्रोजेक्ट और डेमो प्रोजेक्ट को एम्युलेट करने की सुविधा देता है.

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

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

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

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

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

डेमो

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

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

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

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

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

मुख्य प्रोटोटाइपिंग वर्कफ़्लो

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

  1. (ज़रूरी नहीं) डिफ़ॉल्ट रूप से, डिवाइस पर होस्ट किया गया आपका ऐप्लिकेशन, प्रोजेक्ट के संसाधनों (फ़ंक्शन, डेटाबेस, नियम वगैरह) के साथ रीयल के साथ इंटरैक्ट करेगा, न कि सिम्युलेट किया गया. इसके बजाय, आपके पास अपने ऐप्लिकेशन को ऐसे किसी भी सिम्युलेटेड प्रोजेक्ट संसाधन का इस्तेमाल करने के लिए कनेक्ट करने का विकल्प होता है जिसे आपने कॉन्फ़िगर किया है. ज़्यादा जानें: रीयल टाइम डेटाबेस | Cloud Firestore | Cloud Functions

  2. अपने लोकल प्रोजेक्ट डायरेक्ट्री के रूट से, यह कमांड चलाएं:

    firebase emulators:start
  3. अपना वेब ऐप्लिकेशन खोलने के लिए, उस लोकल यूआरएल पर जाएं जो सीएलआई से मिला है. आम तौर पर, यह यूआरएल http://localhost:5000 होता है.

  4. लोकल यूआरएल में बदलाव करने के लिए, अपना ब्राउज़र रीफ़्रेश करें.

दूसरे स्थानीय डिवाइसों से टेस्ट करें

डिफ़ॉल्ट रूप से, एम्युलेटर सिर्फ़ localhost के अनुरोधों का जवाब देते हैं. इसका मतलब है कि होस्ट किए गए कॉन्टेंट को कंप्यूटर के वेब ब्राउज़र से तो ऐक्सेस किया जा सकेगा, लेकिन अपने नेटवर्क के अन्य डिवाइसों से नहीं. अगर आपको अन्य लोकल डिवाइसों से टेस्ट करना है, तो अपने firebase.json को इस तरह कॉन्फ़िगर करें:

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

लगातार इंटिग्रेशन वाले वर्कफ़्लो के लिए, पुष्टि करने वाले टोकन जनरेट करें

अगर आपके लगातार इंटिग्रेशन वर्कफ़्लो, Firebase होस्टिंग पर निर्भर हैं, तो आपको firebase emulators:exec चलाने के लिए, टोकन का इस्तेमाल करके लॉग इन करना होगा. अन्य एम्युलेटर के लिए लॉगिन की ज़रूरत नहीं है.

टोकन जनरेट करने के लिए, firebase login:ci को अपने लोकल एनवायरमेंट पर चलाएं. इसे सीआई सिस्टम से नहीं किया जाना चाहिए. पुष्टि करने के लिए, निर्देशों का पालन करें. आपको यह चरण हर प्रोजेक्ट के लिए सिर्फ़ एक बार पूरा करना होगा, क्योंकि यह टोकन सभी बिल्ड के लिए मान्य होगा. टोकन को पासवर्ड की तरह माना जाना चाहिए, पक्का करें कि उसे गोपनीय रखा जाए.

अगर आपका सीआई एनवायरमेंट आपको ऐसे एनवायरमेंट वैरिएबल तय करने की अनुमति देता है जिनका इस्तेमाल बिल्ड स्क्रिप्ट में किया जा सकता है, तो बस FIREBASE_TOKEN नाम का एनवायरमेंट वैरिएबल बनाएं. इसकी वैल्यू, ऐक्सेस टोकन स्ट्रिंग होगी. Firebase सीएलआई, FIREBASE_TOKEN एनवायरमेंट वैरिएबल अपने-आप चुन लेगा और एम्युलेटर ठीक से शुरू हो जाएंगे.

आखिरी उपाय के तौर पर, आप अपनी बिल्ड स्क्रिप्ट में टोकन शामिल कर सकते हैं, लेकिन यह भी पक्का करें कि उन पक्षों के पास ऐक्सेस न हो जिन पर भरोसा नहीं किया जा सकता. हार्ड कोड किए गए इस तरीके के लिए, firebase emulators:exec कमांड में --token "YOUR_TOKEN_STRING_HERE" को जोड़ा जा सकता है.

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