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

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

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

Firebase Hosting इम्यूलेटर की मदद से क्या किया जा सकता है?

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

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

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

Firebase Local Emulator Suite एक Firebase प्रोजेक्ट के लिए प्रॉडक्ट का इम्यूलेशन करता है.

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

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

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

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

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

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

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

डेमो

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

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

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

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

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

प्रोटोटाइप बनाने का मुख्य वर्कफ़्लो

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

  1. (ज़रूरी नहीं) डिफ़ॉल्ट रूप से, स्थानीय तौर पर होस्ट किया गया आपका ऐप्लिकेशन, इम्यूलेट किए गए नहीं, बल्कि असली प्रोजेक्ट के संसाधनों (फ़ंक्शन, डेटाबेस, नियम वगैरह) के साथ इंटरैक्ट करेगा. इसके बजाय, अपने ऐप्लिकेशन को इम्यूलेट किए गए किसी भी प्रोजेक्ट के संसाधन से कनेक्ट किया जा सकता है. इसके लिए, आपको उन संसाधनों को कॉन्फ़िगर करना होगा. ज़्यादा जानें: Realtime Database | 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 Hosting पर निर्भर करते हैं, तो firebase emulators:exec चलाने के लिए, आपको टोकन का इस्तेमाल करके लॉग इन करना होगा. अन्य इम्यूलेटर के लिए, लॉग इन करने की ज़रूरत नहीं होती.

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

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

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

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