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

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

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

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

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

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

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

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

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

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

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

तीसरा चरण: लाइव स्ट्रीम को डिप्लॉय करें

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

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

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

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

    firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live

    हर प्लेसहोल्डर को इससे बदलें:

    • SOURCE_SITE_ID और TARGET_SITE_ID: ये उन होस्टिंग साइटों के आईडी हैं जिनमें चैनल होते हैं.

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

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

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

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

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

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

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

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

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

  • कोई भी कस्टम डोमेन, जिसे आपने अपनी होस्टिंग साइट(साइटों) से कनेक्ट किया हो

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

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

डिप्लॉयमेंट के लिए कोई टिप्पणी जोड़ें

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

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

प्री-डिप्लॉय और पोस्ट-डिप्लॉय स्क्रिप्ट वाले टास्क जोड़ें

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

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

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

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

एचटीटीपीएस पर दिखाया जा रहा है

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

फ़ाइलें मिटाई जा रही हैं

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

अगले चरण