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

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

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

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

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

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

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

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

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

  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 साइट और किसी भी साइट के लिए, Firebase की मदद से प्रावधान किए गए सबडोमेन अतिरिक्त Hosting साइटें:
    SITE_ID.web.app (जैसे PROJECT_ID.web.app)
    SITE_ID.firebaseapp.com (जैसे कि PROJECT_ID.firebaseapp.com)

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

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

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

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

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

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

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

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

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

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

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

एचटीटीपीएस पर दिखाना

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

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

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

अगले चरण