अपने वेब ऐप्लिकेशन को स्थानीय तौर पर टेस्ट करें, दूसरों के साथ बदलाव शेयर करें, और उसे लाइव डिप्लॉय करें

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

शुरू करने से पहले

Hosting शुरू करें पेज पर दिए गए चरणों को पूरा करें. खास तौर पर, ये टास्क पूरे करें:

  1. Firebase सीएलआई को इंस्टॉल करें या इसके नए वर्शन पर अपडेट करें.
  2. अपने Firebase प्रोजेक्ट से, लोकल प्रोजेक्ट डायरेक्ट्री (जिसमें आपके ऐप्लिकेशन का कॉन्टेंट शामिल है) को कनेक्ट करें.

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

पहला चरण: स्थानीय तौर पर जांच करना

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

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

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

ध्यान दें कि झलक के यूआरएल का अनुमान लगाना मुश्किल होता है, क्योंकि इनमें एक रैंडम हैश होता है. हालांकि, ये यूआरएल सार्वजनिक होते हैं. इसलिए, जिस व्यक्ति के पास यूआरएल है वह इसे ऐक्सेस कर सकता है.

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

    firebase hosting:channel:deploy CHANNEL_ID

    CHANNEL_ID को ऐसी स्ट्रिंग से बदलें जिसमें कोई स्पेस न हो (उदाहरण के लिए, feature_mission-2-mars). इस आईडी का इस्तेमाल, झलक वाले चैनल से जुड़े झलक वाले यूआरएल को बनाने के लिए किया जाएगा.

  2. सीएलआई से मिले झलक वाले यूआरएल पर अपना वेब ऐप्लिकेशन खोलें. यह कुछ ऐसा दिखेगा: PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.app

  3. बदलावों के साथ झलक का यूआरएल अपडेट करने के लिए, वही कमांड फिर से चलाएं. पक्का करें कि निर्देश में वही CHANNEL_ID दिया गया हो.

झलक वाले चैनलों को मैनेज करने के बारे में जानें. इसमें, चैनल के खत्म होने की तारीख सेट करने का तरीका भी शामिल है.

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

तीसरा चरण: लाइव डिप्लॉय करना

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

पहला विकल्प: प्रीव्यू चैनल से अपने लाइव चैनल पर क्लोन करना

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

  1. किसी भी डायरेक्ट्री से, यह कमांड चलाएं:

    firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live

    हर प्लेसहोल्डर की जगह इनका इस्तेमाल करें:

    • SOURCE_SITE_ID और TARGET_SITE_ID: ये उन Hosting साइटों के आईडी हैं जिन पर चैनल मौजूद हैं.

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

      • लाइव चैनल के लिए, चैनल आईडी के तौर पर live का इस्तेमाल करें.
  2. अपने बदलाव देखें (अगला चरण).

दूसरा विकल्प: अपनी लोकल प्रोजेक्ट डायरेक्ट्री से लाइव चैनल पर डिप्लॉय करना

इस विकल्प की मदद से, लाइव चैनल के लिए कॉन्फ़िगरेशन में बदलाव किया जा सकता है. इसके अलावा, अगर आपने झलक वाले चैनल का इस्तेमाल नहीं किया है, तो भी इसे डिप्लॉय किया जा सकता है.

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

    firebase deploy --only hosting
  2. अपने बदलाव देखें (अगला चरण).

चौथा चरण: लाइव साइट पर बदलाव देखना

ऊपर दिए गए दोनों विकल्प, आपके Hosting कॉन्टेंट और कॉन्फ़िगरेशन को इन साइटों पर डिप्लॉय करते हैं:

  • आपकी डिफ़ॉल्ट Hosting साइट और किसी भी अन्य Hosting साइट के लिए, Firebase से उपलब्ध कराए गए सबडोमेन:
    SITE_ID.web.app (जैसे, PROJECT_ID.web.app)
    SITE_ID.firebaseapp.com (जैसे, PROJECT_ID.firebaseapp.com)

  • ऐसे सभी कस्टम डोमेन जिन्हें आपने अपनी Hosting साइटों से कनेक्ट किया है

किसी खास Hosting साइट पर डिप्लॉय करने के लिए, अपने सीएलआई कमांड में डिप्लॉय का टारगेट तय करें.

डिप्लॉय करने से जुड़ी अन्य गतिविधियां और जानकारी

डिप्लॉय करने के लिए टिप्पणी जोड़ना

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

firebase deploy --only hosting -m "Deploying the best new feature ever."

डिप्लॉय करने से पहले और डिप्लॉय करने के बाद होने वाले टास्क जोड़ना

डिप्लॉय करने से पहले या बाद में होने वाले टास्क करने के लिए, firebase deploy कमांड से शेल स्क्रिप्ट को कनेक्ट किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है. उदाहरण के लिए, पोस्टडिप्लॉय हुक से, एडमिन को साइट के नए कॉन्टेंट के डिप्लॉय होने की सूचना दी जा सकती है. ज़्यादा जानकारी के लिए, Firebase सीएलआई दस्तावेज़ देखें.

डिप्लॉय किए गए कॉन्टेंट को कैश मेमोरी में सेव करना

स्टैटिक कॉन्टेंट के लिए अनुरोध किए जाने पर, Firebase Hosting कॉन्टेंट को सीडीएन पर अपने-आप कैश मेमोरी में सेव कर देता है. अगर साइट का कॉन्टेंट फिर से डिप्लॉय किया जाता है, तो Firebase, CDN में कैश मेमोरी में सेव किया गया आपका सारा स्टैटिक कॉन्टेंट अपने-आप मिटा देता है. इससे नए अनुरोधों को आपका नया कॉन्टेंट मिलता है.

ध्यान दें कि डाइनैमिक कॉन्टेंट को कैश मेमोरी में सेव करने की सुविधा को कॉन्फ़िगर किया जा सकता है.

एचटीटीपीएस का इस्तेमाल करना

पक्का करें कि Firebase Hosting पर होस्ट न किए गए सभी एक्सटर्नल रिसॉर्स, एसएसएल (एचटीटीपीएस) के ज़रिए लोड किए जाएं. इनमें सभी एक्सटर्नल स्क्रिप्ट भी शामिल हैं. ज़्यादातर ब्राउज़र, उपयोगकर्ताओं को "मिले-जुले कॉन्टेंट" (एसएसएल और नॉन-एसएसएल ट्रैफ़िक) लोड करने की अनुमति नहीं देते.

फ़ाइलें मिटाना

Firebase Hosting में, डिप्लॉय की गई साइट से चुनी गई फ़ाइलों को मिटाने का मुख्य तरीका यह है कि फ़ाइलों को स्थानीय तौर पर मिटाएं और फिर उन्हें फिर से डिप्लॉय करें.

अगले चरण