कई साइटों पर प्रोजेक्ट के संसाधन शेयर करना

किसी एक Firebase में, एक या उससे ज़्यादा Firebase Hosting साइटें सेट अप की जा सकती हैं प्रोजेक्ट. सभी साइटें एक ही Firebase प्रोजेक्ट में हैं, इसलिए सभी साइटें ये काम कर सकती हैं: प्रोजेक्ट के अन्य Firebase संसाधनों को ऐक्सेस करने के लिए.

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

पहला चरण: अपना Firebase सीएलआई वर्शन अपडेट करें

Firebase Hosting की सबसे नई सुविधाओं को ऐक्सेस करें Firebase सीएलआई के सबसे नए वर्शन पर अपडेट किया जा रहा है.

दूसरा चरण: अन्य साइटें जोड़ना

इनमें से किसी एक तरीके का इस्तेमाल करके, Firebase प्रोजेक्ट में अतिरिक्त साइटें जोड़ें:

  • Firebase कंसोल के Hosting पेज पर वर्कफ़्लो का इस्तेमाल करना

  • Firebase सीएलआई कमांड का इस्तेमाल करें: firebase hosting:sites:create SITE_ID

  • Hosting REST API का इस्तेमाल करें: projects.sites.create

इनमें से हर एक तरीके के लिए, आपको एक SITE_ID तय करना होगा, जिसका इस्तेमाल इसे बनाने के लिए किया जाता है साइट के लिए, Firebase की ओर से प्रावधान किए गए डिफ़ॉल्ट सबडोमेन:

  • SITE_ID.web.app
  • SITE_ID.firebaseapp.com

इन यूआरएल के लिए SITE_ID का इस्तेमाल किया जाता है. इसलिए, साइट आईडी में ये चीज़ें होती हैं ज़रूरतें:

  • एक मान्य होस्टनेम लेबल होना चाहिए, इसका मतलब है कि इसमें ., _ वगैरह नहीं होने चाहिए.
  • इसमें 30 या इससे कम वर्ण होने चाहिए
  • Firebase में यह ग्लोबल तौर पर, यूनीक होना चाहिए

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

दूसरी साइट को मिटाना

इनमें से किसी एक का इस्तेमाल करके, Firebase प्रोजेक्ट से अनचाही साइटों को मिटाएं तरीका:

  • इसमें वर्कफ़्लो का इस्तेमाल Hosting पेज Firebase कंसोल का

  • Firebase सीएलआई कमांड का इस्तेमाल करें: firebase hosting:sites:delete SITE_ID

  • Hosting REST API का इस्तेमाल करें: projects.sites.delete

ध्यान दें कि आप डिफ़ॉल्ट साइट को नहीं मिटा सकते, जिसमें SITE_ID पहले से ही मौजूद है आपका Firebase प्रोजेक्ट आईडी.

तीसरा चरण: अपनी साइटों के लिए डिप्लॉय टारगेट सेट अप करना

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

डिप्लॉयमेंट टारगेट बनाने और Hosting साइट पर TARGET_NAME लागू करने के लिए, इसे चलाएं आपकी प्रोजेक्ट डायरेक्ट्री के रूट से नीचे दी गई सीएलआई कमांड का इस्तेमाल करें:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

पैरामीटर कहां होते हैं:

  • TARGET_NAME — इसके लिए एक यूनीक नाम (जिसे आपने खुद तय किया है) Hosting साइट, जिस पर आपको डिप्लॉय किया जा रहा है

  • RESOURCE_IDENTIFIERHosting साइट के लिए SITE_ID आपके Firebase प्रोजेक्ट में मौजूद हो

उदाहरण के लिए, अगर आपने अपनेmyapp-blogmyapp-app Firebase प्रोजेक्ट बनाया है, तो आप कोई यूनीक TARGET_NAME (blog और app) को हर साइट पर भेजता है. इसके लिए, ये निर्देश दिए जाते हैं:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

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

चौथा चरण: हर साइट के लिए होस्टिंग कॉन्फ़िगरेशन तय करें

किसी साइट की होस्टिंग तय करते समय, उस पर लागू होने वाली TARGET_NAME का इस्तेमाल करें कॉन्फ़िगरेशन firebase.json फ़ाइल.

  • अगर आपकी firebase.json फ़ाइल एक से ज़्यादा साइटों के लिए कॉन्फ़िगरेशन तय करती है, किसी अरे फ़ॉर्मैट का इस्तेमाल करें:

    {
      "hosting": [ {
          "target": "blog",  // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog"
          "public": "blog/dist",  // contents of this folder are deployed to the site "myapp-blog"
    
          // ...
        },
        {
          "target": "app",  // "app" is the applied TARGET_NAME for the Hosting site "myapp-app"
          "public": "app/dist",  // contents of this folder are deployed to the site "myapp-app"
    
          // ...
    
          "rewrites": [...]  // You can define specific Hosting configurations for each site
        }
      ]
    }
  • अगर आपकी firebase.json फ़ाइल सिर्फ़ एक साइट के लिए कॉन्फ़िगरेशन तय करती है, तो अरे फ़ॉर्मैट का इस्तेमाल करना ज़रूरी नहीं है:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }

पांचवां चरण: स्थानीय तौर पर टेस्ट करना, बदलावों की झलक देखना, और उन्हें अपनी साइटों पर डिप्लॉय करना

अपने स्थानीय प्रोजेक्ट डायरेक्ट्री के रूट से, इनमें से कोई भी कमांड चलाएं.

आदेश ब्यौरा
firebase emulators:start --only hosting यहHosting स्थानीय तौर पर होस्ट की गई किसी Hosting साइट पर डिफ़ॉल्ट यूआरएल
firebase emulators:start --only hosting:TARGET_NAME स्थानीय तौर पर होस्ट किए गए यूआरएल पर, बताई गई Hosting साइट के Hosting कॉन्टेंट और कॉन्फ़िगरेशन को एमुलेट करता है
firebase hosting:channel:deploy \
CHANNEL_ID
यह ऐप्लिकेशन के Hosting कॉन्टेंट और कॉन्फ़िगरेशन को डिप्लॉय करता है झलक वाले यूआरएल पर डिफ़ॉल्ट Hosting साइट
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
बताए गए कॉन्टेंट और कॉन्फ़िगरेशन को Hosting डिप्लॉय करता है झलक दिखाने वाले यूआरएल पर Hosting साइट
firebase deploy --only hosting यह Hosting के कॉन्टेंट और कॉन्फ़िगरेशन को लाइव चैनल पर डिप्लॉय करता है सभी Hosting साइटों में से, इसे कॉन्फ़िगर किया गया firebase.json
firebase deploy --only hosting:TARGET_NAME यह Hosting के कॉन्टेंट और कॉन्फ़िगरेशन को लाइव चैनल पर डिप्लॉय करता है बताई गई Hosting साइट का
आदेश ब्यौरा
(इसका सुझाव नहीं दिया जाता; इसके बजाय emulators:start का इस्तेमाल करें)
firebase serve --only hosting
Hosting की सामग्री और कॉन्फ़िगरेशन को काम करता है स्थानीय तौर पर होस्ट की गई किसी Hosting साइट पर डिफ़ॉल्ट यूआरएल
(इसका सुझाव नहीं दिया जाता; इसके बजाय emulators:start का इस्तेमाल करें)
firebase serve --only hosting:TARGET_NAME
बताए गए इवेंट के Hosting कॉन्टेंट और कॉन्फ़िगरेशन को काम करता है स्थानीय तौर पर होस्ट किए गए यूआरएल पर मौजूद Hosting साइट