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