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

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

अगले चरण