आप एक फायरबेस प्रोजेक्ट में एक या अधिक फायरबेस होस्टिंग साइट्स सेट कर सकते हैं। चूंकि सभी साइटें एक ही Firebase प्रोजेक्ट में हैं, इसलिए सभी साइटें प्रोजेक्ट के अन्य Firebase संसाधनों तक पहुंच सकती हैं।
- प्रत्येक साइट का अपना होस्टिंग कॉन्फिगरेशन होता है।
- प्रत्येक साइट सामग्री का अपना संग्रह होस्ट करती है।
- प्रत्येक साइट में एक या अधिक संबद्ध डोमेन हो सकते हैं।
एक ही फायरबेस प्रोजेक्ट के भीतर कई होस्टिंग साइट्स सेट करके, आप संबंधित साइटों और ऐप्स के बीच फायरबेस संसाधनों को अधिक आसानी से साझा कर सकते हैं। उदाहरण के लिए, यदि आप अपने ब्लॉग, एडमिन पैनल और सार्वजनिक ऐप को एक ही फायरबेस प्रोजेक्ट में अलग-अलग साइटों के रूप में सेट करते हैं, तो वे सभी एक ही फायरबेस ऑथेंटिकेशन यूजर डेटाबेस को साझा कर सकते हैं, साथ ही उनके अपने अद्वितीय डोमेन या सामग्री भी हो सकते हैं।
चरण 1 : अपना फायरबेस सीएलआई संस्करण अपडेट करें
Firebase CLI के नवीनतम संस्करण में अपडेट करके सबसे वर्तमान Firebase होस्टिंग सुविधाओं तक पहुंचें।
चरण 2 : अतिरिक्त साइट्स जोड़ें
निम्न विधियों में से किसी एक का उपयोग करके किसी Firebase प्रोजेक्ट में अतिरिक्त साइटें जोड़ें:
Firebase कंसोल के होस्टिंग पेज में वर्कफ़्लो का उपयोग करें
फायरबेस सीएलआई कमांड का प्रयोग करें:
firebase hosting:sites:create SITE_ID
होस्टिंग रेस्ट एपीआई का उपयोग करें:
projects.sites.create
इनमें से प्रत्येक विधि के लिए, आप एक SITE_ID
निर्दिष्ट करेंगे जिसका उपयोग साइट के लिए Firebase-प्रावधानित डिफ़ॉल्ट उप डोमेन बनाने के लिए किया जाता है:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
क्योंकि SITE_ID
उपयोग इन URL के लिए किया जाता है, इसलिए साइट ID की निम्न आवश्यकताएं हैं:
- एक मान्य होस्टनाम लेबल होना चाहिए, जिसका अर्थ है कि इसमें शामिल नहीं हो सकता
.
,_
, आदि - 30 वर्ण या उससे कम होने चाहिए
- फायरबेस के भीतर विश्व स्तर पर अद्वितीय होना चाहिए
प्रत्येक साइट के लिए, आप वैकल्पिक रूप से कस्टम डोमेन भी जोड़ सकते हैं ताकि एक ही सामग्री और कॉन्फ़िगरेशन को कई URL पर प्रस्तुत किया जा सके।
द्वितीयक साइट हटाएं
निम्न विधियों में से किसी एक का उपयोग करके किसी Firebase प्रोजेक्ट से अवांछित साइट हटाएं:
Firebase कंसोल के होस्टिंग पेज में वर्कफ़्लो का उपयोग करें
फायरबेस सीएलआई कमांड का प्रयोग करें:
firebase hosting:sites:delete SITE_ID
होस्टिंग REST API का उपयोग करें:
projects.sites.delete
ध्यान दें कि आप उस डिफ़ॉल्ट साइट को नहीं हटा सकते हैं, जिसकी SITE_ID
आपके Firebase प्रोजेक्ट आईडी के समान है।
चरण 3 : अपनी साइटों के लिए परिनियोजन लक्ष्य निर्धारित करें
जब आपके पास एक से अधिक साइटें होती हैं और आप Firebase CLI परिनियोजन आदेश चलाते हैं, तो CLI को यह बताने का एक तरीका चाहिए कि प्रत्येक साइट पर कौन सी सेटिंग लागू की जानी चाहिए। परिनियोजन लक्ष्यों के साथ आप अपनी firebase.json
कॉन्फ़िगरेशन फ़ाइल में और अपनी साइटों पर परीक्षण या परिनियोजन के लिए अपने Firebase.json कॉन्फ़िगरेशन फ़ाइल और अपने Firebase CLI आदेशों में TARGET_NAME
के साथ विशिष्ट साइट की विशिष्ट रूप से पहचान कर सकते हैं।
परिनियोजन लक्ष्य बनाने और किसी होस्टिंग साइट पर 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 | स्थानीय रूप से होस्ट किए गए यूआरएल पर होस्टिंग सामग्री और डिफ़ॉल्ट होस्टिंग साइट की कॉन्फ़िगरेशन का अनुकरण करता है |
firebase emulators:start --only hosting: TARGET_NAME | स्थानीय रूप से होस्ट किए गए URL पर होस्टिंग सामग्री और निर्दिष्ट होस्टिंग साइट के कॉन्फ़िगरेशन का अनुकरण करता है |
firebase hosting:channel:deploy \ | पूर्वावलोकन URL पर डिफ़ॉल्ट होस्टिंग साइट की होस्टिंग सामग्री और कॉन्फ़िगरेशन को तैनात करता है |
firebase hosting:channel:deploy \ | एक पूर्वावलोकन URL पर होस्टिंग सामग्री और निर्दिष्ट होस्टिंग साइट के कॉन्फ़िगरेशन को तैनात करता है |
firebase deploy --only hosting | firebase.json में कॉन्फ़िगर की गई सभी होस्टिंग साइटों के लाइव चैनल पर होस्टिंग सामग्री और कॉन्फ़िगरेशन को तैनात करता है |
firebase deploy --only hosting: TARGET_NAME | होस्टिंग सामग्री और कॉन्फ़िगरेशन को निर्दिष्ट होस्टिंग साइट के लाइव चैनल पर तैनात करता है |
आज्ञा | विवरण |
---|---|
(अनुशंसित नहीं; emulators:start )firebase serve --only hosting | स्थानीय रूप से होस्ट किए गए यूआरएल पर होस्टिंग सामग्री और डिफ़ॉल्ट होस्टिंग साइट की कॉन्फ़िगरेशन की सेवा करता है |
(अनुशंसित नहीं; emulators:start )firebase serve --only hosting: TARGET_NAME | स्थानीय रूप से होस्ट किए गए यूआरएल पर होस्टिंग सामग्री और निर्दिष्ट होस्टिंग साइट की कॉन्फ़िगरेशन की सेवा करता है |