Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

कई साइटों पर परियोजना संसाधनों को साझा करें

आप एक फायरबेस प्रोजेक्ट में एक या अधिक फायरबेस होस्टिंग साइट सेट कर सकते हैं। चूंकि सभी साइटें एक ही फायरबेस प्रोजेक्ट में हैं, इसलिए सभी साइटें प्रोजेक्ट के अन्य फायरबेस संसाधनों तक पहुंच सकती हैं।

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

चरण 1 : अपना फायरबेस सीएलआई संस्करण अपडेट करें

फायरबेस सीएलआई के नवीनतम संस्करण में अपडेट करके सबसे वर्तमान फायरबेस होस्टिंग सुविधाओं तक पहुंचें।

चरण २ : अतिरिक्त साइटें जोड़ें

निम्न विधियों में से किसी एक का उपयोग करके किसी Firebase प्रोजेक्ट में अतिरिक्त साइटें जोड़ें:

  • फायरबेस कंसोल के होस्टिंग पेज में वर्कफ़्लो का उपयोग करें

  • फायरबेस सीएलआई कमांड का प्रयोग करें firebase hosting:sites:create SITE_ID

  • होस्टिंग आरईएसटी एपीआई का प्रयोग करें:projects.sites.create

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

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

चूंकि इन URL के लिए SITE_ID का उपयोग किया जाता है, इसलिए साइट आईडी की निम्न आवश्यकताएं हैं:

  • एक मान्य होस्टनाम लेबल होना चाहिए, जिसका अर्थ है कि इसमें . , _ , आदि
  • 30 वर्ण या उससे कम का होना चाहिए
  • Firebase के भीतर विश्व स्तर पर अद्वितीय होना चाहिए

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

एक द्वितीयक साइट हटाएं

निम्न विधियों में से किसी एक का उपयोग करके किसी Firebase प्रोजेक्ट से अवांछित साइटें हटाएं:

  • फायरबेस कंसोल के होस्टिंग पेज में वर्कफ़्लो का उपयोग करें

  • फायरबेस सीएलआई कमांड का प्रयोग करें firebase hosting:sites:delete SITE_ID

  • होस्टिंग आरईएसटी एपीआई का प्रयोग करें:projects.sites.delete

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

चरण 3 : अपनी साइटों के लिए परिनियोजन लक्ष्य निर्धारित करें

जब आपके पास एक से अधिक साइटें हों और आप Firebase CLI परिनियोजन आदेश चलाते हों, तो CLI को यह बताने के लिए एक तरीके की आवश्यकता होती है कि प्रत्येक साइट पर कौन-सी सेटिंग परिनियोजित की जानी चाहिए। परिनियोजन लक्ष्यों के साथ आप अपनी firebase.json कॉन्फ़िगरेशन फ़ाइल में TARGET_NAME साथ विशिष्ट साइट की पहचान कर सकते हैं और अपनी साइटों पर परीक्षण या परिनियोजन के लिए अपने Firebase CLI आदेशों में

एक परिनियोजन लक्ष्य बनाने और एक होस्टिंग साइट पर TARGET_NAME लागू करने के लिए, अपनी परियोजना निर्देशिका के मूल से निम्नलिखित CLI कमांड चलाएँ:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

जहां पैरामीटर हैं:

  • TARGET_NAME — उस होस्टिंग साइट के लिए एक अद्वितीय नाम (जिसे आपने स्वयं परिभाषित किया है) जिसे आप परिनियोजित कर रहे हैं

  • RESOURCE_IDENTIFIERआपके Firebase प्रोजेक्ट में सूचीबद्ध होस्टिंग साइट के लिए SITE_ID

उदाहरण के लिए, यदि आपने अपने फायरबेस प्रोजेक्ट में दो साइटें ( myapp-blog और myapp-app ) बनाई हैं, तो आप निम्नलिखित कमांड चलाकर प्रत्येक साइट पर एक अद्वितीय TARGET_NAME (क्रमशः blog और app ) लागू कर सकते हैं:

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

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

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

जब आप अपनी firebase.json फ़ाइल में किसी साइट के होस्टिंग कॉन्फ़िगरेशन को परिभाषित कर रहे हों, तो उसके लागू TARGET_NAME का उपयोग करें।

  • अगर आपकी 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": [...]
      }
    }
    

चरण 5 : स्थानीय रूप से परीक्षण करें, परिवर्तनों का पूर्वावलोकन करें और अपनी साइटों पर परिनियोजित करें

अपनी स्थानीय प्रोजेक्ट निर्देशिका के मूल से निम्न में से कोई भी आदेश चलाएँ।

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