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

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

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

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

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

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

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

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

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

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

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

अगले चरण