किसी एक Firebase प्रोजेक्ट में, एक या उससे ज़्यादा Firebase होस्टिंग साइटें सेट अप की जा सकती हैं. सभी साइटें एक ही Firebase प्रोजेक्ट में होती हैं. इसलिए, सभी साइटें प्रोजेक्ट के अन्य Firebase संसाधनों को ऐक्सेस कर सकती हैं.
- हर साइट का अपना होस्टिंग कॉन्फ़िगरेशन होता है.
- हर साइट, कॉन्टेंट का अपना कलेक्शन होस्ट करती है.
- हर साइट में एक या उससे ज़्यादा डोमेन हो सकते हैं.
एक ही Firebase प्रोजेक्ट में कई होस्टिंग साइटें सेट अप करके, Firebase के संसाधनों को मिलती-जुलती साइटों और ऐप्लिकेशन के बीच आसानी से शेयर किया जा सकता है. उदाहरण के लिए, अगर आपने एक ही Firebase प्रोजेक्ट में अपने ब्लॉग, एडमिन पैनल, और सार्वजनिक ऐप्लिकेशन को अलग-अलग साइटों के तौर पर सेट अप किया है, तो वे सभी एक ही Firebase से पुष्टि करने वाले उपयोगकर्ता डेटाबेस को शेयर कर सकते हैं. साथ ही, उनके पास अपने यूनीक डोमेन या कॉन्टेंट भी हो सकता है.
पहला चरण: अपना Firebase सीएलआई वर्शन अपडेट करें
Firebase सीएलआई को नए वर्शन पर अपडेट करके, Firebase होस्टिंग की सबसे नई सुविधाओं को ऐक्सेस करें.
दूसरा चरण: अन्य साइटें जोड़ना
इनमें से किसी एक तरीके का इस्तेमाल करके, Firebase प्रोजेक्ट में अतिरिक्त साइटें जोड़ें:
Firebase कंसोल के होस्टिंग पेज पर वर्कफ़्लो का इस्तेमाल करें
Firebase सीएलआई कमांड का इस्तेमाल करें:
firebase hosting:sites:create SITE_ID
होस्टिंग REST API का इस्तेमाल करें:
projects.sites.create
इनमें से हर तरीके के लिए, आपको एक SITE_ID
तय करना होगा. इसका इस्तेमाल, साइट के लिए Firebase की ओर से प्रावधान किए गए डिफ़ॉल्ट सबडोमेन को बनाने के लिए किया जाता है:
SITE_ID.web.app
SITE_ID.firebaseapp.com
इन यूआरएल के लिए SITE_ID
का इस्तेमाल किया जाता है, इसलिए साइट आईडी के लिए ये ज़रूरी शर्तें होती हैं:
- एक मान्य होस्टनेम लेबल होना चाहिए, इसका मतलब है कि इसमें
.
,_
वगैरह नहीं होने चाहिए. - इसमें 30 या इससे कम वर्ण होने चाहिए
- Firebase में यह ग्लोबल तौर पर, यूनीक होना चाहिए
हर साइट के लिए, एक जैसा कॉन्टेंट और एक से ज़्यादा यूआरएल पर कॉन्फ़िगरेशन दिखाने के लिए, आपके पास कस्टम डोमेन जोड़ने का विकल्प भी है.
दूसरी साइट को मिटाना
इनमें से किसी एक तरीके का इस्तेमाल करके, Firebase प्रोजेक्ट से अनचाही साइटों को मिटाएं:
Firebase कंसोल के होस्टिंग पेज पर वर्कफ़्लो का इस्तेमाल करें
Firebase सीएलआई कमांड का इस्तेमाल करें:
firebase hosting:sites:delete SITE_ID
होस्टिंग REST API का इस्तेमाल करें:
projects.sites.delete
ध्यान दें कि डिफ़ॉल्ट साइट को मिटाया नहीं जा सकता, जिसमें SITE_ID
आपके Firebase प्रोजेक्ट आईडी से मेल खाता हो.
तीसरा चरण: अपनी साइटों के लिए डिप्लॉयमेंट टारगेट सेट अप करना
जब आपके पास एक से ज़्यादा साइटें होती हैं और Firebase सीएलआई डिप्लॉय कमांड रन किया जाता है, तो सीएलआई को यह बताने की ज़रूरत होती है कि हर साइट के लिए कौनसी सेटिंग डिप्लॉय की जानी चाहिए. डिप्लॉय टारगेट की मदद से किसी ऐसी खास साइट की पहचान करें जिसके लिए आपकी firebase.json
कॉन्फ़िगरेशन फ़ाइल में और Firebase सीएलआई निर्देशों में TARGET_NAME
का इस्तेमाल किया गया हो, ताकि आप अपनी साइटों की जांच कर सकें या उन्हें डिप्लॉय कर सकें.
डिप्लॉयमेंट टारगेट बनाने और होस्टिंग साइट पर TARGET_NAME
लागू करने के लिए, अपनी प्रोजेक्ट डायरेक्ट्री के रूट से यह सीएलआई कमांड चलाएं:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
पैरामीटर कहां होते हैं:
TARGET_NAME — उस होस्टिंग साइट के लिए एक यूनीक नाम (जिसे आपने खुद तय किया है)
RESOURCE_IDENTIFIER — होस्टिंग साइट की
SITE_ID
जैसा कि आपके Firebase प्रोजेक्ट में बताया गया है
उदाहरण के लिए, अगर आपने अपने Firebase प्रोजेक्ट में दो साइटें (myapp-blog
और myapp-app
) बनाई हैं, तो यहां दिए गए निर्देशों की मदद से हर साइट के लिए एक यूनीक TARGET_NAME
(blog
और app
) लागू किया जा सकता है:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
डिप्लॉय टारगेट की सेटिंग, आपकी प्रोजेक्ट डायरेक्ट्री की .firebaserc
फ़ाइल में सेव होती हैं. इसलिए, आपको हर प्रोजेक्ट के लिए डिप्लॉयमेंट के टारगेट को सिर्फ़ एक बार सेट अप करना होगा.
चौथा चरण: हर साइट के लिए होस्टिंग कॉन्फ़िगरेशन तय करें
अपनी 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": [...] } }
पांचवां चरण: स्थानीय तौर पर टेस्ट करना, बदलावों की झलक देखना, और उन्हें अपनी साइटों पर डिप्लॉय करना
अपनी लोकल प्रोजेक्ट डायरेक्ट्री के रूट से, इनमें से कोई भी कमांड चलाएं.
आदेश | जानकारी |
---|---|
firebase emulators:start --only hosting |
स्थानीय तौर पर होस्ट किए गए यूआरएल पर, होस्ट करने वाले कॉन्टेंट और डिफ़ॉल्ट होस्टिंग साइट के कॉन्फ़िगरेशन को एम्युलेट करें |
firebase emulators:start --only hosting:TARGET_NAME |
स्थानीय रूप से होस्ट किए गए यूआरएल पर, बताई गई होस्टिंग साइट के होस्टिंग कॉन्टेंट और कॉन्फ़िगरेशन की नकल करता है |
firebase hosting:channel:deploy \ |
झलक वाले यूआरएल पर, डिफ़ॉल्ट होस्टिंग साइट के कॉन्फ़िगरेशन और कॉन्टेंट को डिप्लॉय करता है |
firebase hosting:channel:deploy \ |
झलक वाले यूआरएल पर, बताई गई होस्टिंग साइट की होस्टिंग कॉन्टेंट और कॉन्फ़िगरेशन को डिप्लॉय करता है |
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
|
यह सर्वर, होस्ट की जा रही साइट के कॉन्टेंट और कॉन्फ़िगरेशन को, स्थानीय तौर पर होस्ट किए गए यूआरएल पर उपलब्ध कराता है |