टारगेट डिप्लॉय करना

डिप्लॉय टारगेट, आपके Firebase प्रोजेक्ट में मौजूद Firebase संसाधनों के लिए, छोटे नाम वाले आइडेंटिफ़ायर होते हैं. जैसे, यूनीक स्टैटिक एसेट वाली Hosting साइट या एक जैसे सुरक्षा नियमों वाले Realtime Database इंस्टेंस का ग्रुप.

डिप्लॉय टारगेट तब काम के होते हैं, जब आपके पास एक से ज़्यादा Hosting साइटें, एक से ज़्यादा Cloud Storage बकेट या एक से ज़्यादा Realtime Database इंस्टेंस हों. डिप्लॉय टारगेट की मदद से, Firebase CLI आपके प्रोजेक्ट में मौजूद किसी खास Firebase रिसॉर्स या रिसॉर्स के ग्रुप में सेटिंग डिप्लॉय कर सकता है. जैसे:

  • आपकी हर Hosting साइट के लिए होस्टिंग कॉन्फ़िगरेशन
  • आपकी हर Hosting साइट के लिए, प्रोजेक्ट डायरेक्ट्री से स्टैटिक ऐसेट
  • एक से ज़्यादा Realtime Database इंस्टेंस या एक से ज़्यादा Cloud Storage बकेट के साथ शेयर किए गए सुरक्षा नियम

डिप्लॉय टारगेट सेट अप करने के लिए:

  1. टारगेट किए गए Firebase संसाधन या Firebase संसाधनों के ग्रुप पर TARGET_NAME लागू करें.
  2. अपनी firebase.json फ़ाइल में, हर संसाधन या संसाधनों के ग्रुप की सेटिंग कॉन्फ़िगर करते समय, इससे जुड़े TARGET_NAME का रेफ़रंस दें.

firebase deploy जैसे Firebase सीएलआई कमांड चलाने पर, Firebase सीएलआई हर TARGET_NAME को उससे जुड़े Firebase संसाधनों के साथ जोड़ देता है. इसके बाद, CLI आपके Firebase प्रोजेक्ट को हर संसाधन की सेटिंग के बारे में बताता है.

अपने Firebase संसाधनों के लिए डिप्लॉय टारगेट सेट अप करना

Firebase CLI का इस्तेमाल करके, Firebase संसाधन या Firebase संसाधनों के ग्रुप पर TARGET_NAME (छोटा नाम आइडेंटिफ़ायर, जिसे आपने खुद तय किया है) लागू करें. Firebase, इनके लिए डिप्लॉय टारगेट के साथ काम करता है:

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

Hosting के लिए डिप्लॉय टारगेट सेट अप करना

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

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

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

  • TYPE — Firebase का काम का रिसॉर्स टाइप

    • Firebase Hosting साइटों के लिए, hosting का इस्तेमाल करें.
  • TARGET_NAME — उस Hosting साइट के लिए एक यूनीक नाम जिस पर आपको ऐप्लिकेशन डिप्लॉय करना है

  • RESOURCE_IDENTIFIERHosting साइट के लिए 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

Cloud Storage या Realtime Database के लिए डिप्लॉय टारगेट सेट अप करना

डिप्लॉय टारगेट बनाने और Cloud Storage या Realtime Database संसाधनों के सेट पर TARGET_NAME लागू करने के लिए, यह सीएलआई कमांड चलाएं:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

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

  • TYPE — Firebase का काम का रिसॉर्स टाइप

    • Cloud Storage बकेट के लिए, storage का इस्तेमाल करें.
    • Realtime Database इंस्टेंस के लिए, database का इस्तेमाल करें.
  • TARGET_NAME — सुरक्षा नियमों को शेयर करने वाले संसाधन या संसाधनों के ग्रुप का यूनीक नाम

  • RESOURCE_IDENTIFIERआपके Firebase प्रोजेक्ट में सूची में शामिल संसाधनों के आइडेंटिफ़ायर (जैसे, स्टोरेज बकेट के नाम या डेटाबेस इंस्टेंस आईडी), जो सभी एक जैसे सुरक्षा नियमों को शेयर करते हैं

उदाहरण के लिए, main के TARGET_NAME को तीन क्षेत्रीय Cloud Storage बकेट के ग्रुप पर लागू किया जा सकता है. ये बकेट, सुरक्षा से जुड़े एक जैसे नियम शेयर करती हैं. इसके लिए, यह कमांड चलाएं:

firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja

ध्यान दें कि myproject.firebasestorage.app, डिफ़ॉल्ट बकेट का आइडेंटिफ़ायर है. वहीं, myproject-eu और myproject-ja, Firebase प्रोजेक्ट में बनाई गई दो अतिरिक्त बकेट हैं.

डिप्लॉय टारगेट का इस्तेमाल करने के लिए, अपनी firebase.json फ़ाइल को कॉन्फ़िगर करना

अपने Firebase संसाधनों के लिए डिप्लॉय टारगेट सेट अप करने के बाद, अपनी firebase.json कॉन्फ़िगरेशन फ़ाइल में लागू किए गए हर TARGET_NAME का रेफ़रंस दें:

  1. हर Firebase संसाधन TYPE (hosting, storage या database) के लिए, कॉन्फ़िगरेशन ऑब्जेक्ट का कलेक्शन बनाएं.
  2. ऐरे में, target (TARGET_NAME का इस्तेमाल करके) तय करें और उससे जुड़े Firebase संसाधन या संसाधनों के ग्रुप के लिए अपनी सेटिंग तय करें.

ऊपर दिए गए उदाहरणों को जारी रखते हुए, अगर आपके Firebase प्रोजेक्ट में दो Hosting साइटें और तीन Cloud Storage बकेट (जो एक जैसे सुरक्षा नियम शेयर करती हैं) हैं, तो आपकी 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
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

अगर आपके पास अपने रिसॉर्स के लिए एक से ज़्यादा कॉन्फ़िगरेशन हैं, तो एक से ज़्यादा डिप्लॉय टारगेट बनाए जा सकते हैं. साथ ही, firebase.json फ़ाइल में हर टारगेट की जानकारी दी जा सकती है. firebase deploy को चलाने पर, उससे जुड़े सभी संसाधन एक साथ डिप्लॉय हो जाएंगे.

डिप्लॉय टारगेट मैनेज करना

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

आदेश ब्यौरा
firebase target आपकी मौजूदा प्रोजेक्ट डायरेक्ट्री के लिए, डिप्लॉय किए जाने वाले टारगेट की सूची बनाता है
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
किसी संसाधन को उस टारगेट से हटाता है जिसे उसे असाइन किया गया है
firebase target:clear \
TYPE TARGET_NAME
तय किए गए टारगेट से सभी संसाधनों या Hosting साइट को हटाता है

target:remove और target:clear निर्देश, आपकी प्रोजेक्ट डायरेक्ट्री में मौजूद .firebaserc फ़ाइल में, डिप्लॉय किए जाने के टारगेट की सेटिंग को अपने-आप अपडेट करते हैं.

डिप्लॉय करने से पहले, स्थानीय तौर पर जांच करना

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

आदेश ब्यौरा
firebase emulators:start आपकी प्रोजेक्ट डायरेक्ट्री में कॉन्फ़िगर किए गए सभी संसाधनों को एमुलेट करता है
firebase emulators:start \
--only hosting:TARGET_NAME
सिर्फ़ बताई गई Hosting साइट के Hosting कॉन्टेंट और कॉन्फ़िगरेशन को एमुलेट करता है
firebase emulators:start \
--only storage:TARGET_NAME
तय किए गए Cloud Storage टारगेट के लिए, सिर्फ़ नियमों की फ़ाइल को एमुलेट करता है
firebase emulators:start \
--only database:TARGET_NAME
तय किए गए Realtime Database टारगेट के लिए, सिर्फ़ नियमों की फ़ाइल को एमुलेट करता है

Firebase Local Emulator Suite को कॉन्फ़िगर करने और इस्तेमाल करने के बारे में ज़्यादा जानें.

खास Firebase संसाधनों को डिप्लॉय करना

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

आदेश ब्यौरा
firebase deploy आपके प्रोजेक्ट की डायरेक्ट्री में, डिप्लॉय किए जा सकने वाले सभी संसाधनों की रिलीज़ बनाता है
firebase deploy \
--only hosting:TARGET_NAME
यह सिर्फ़ बताई गई Hosting साइट के Hosting कॉन्टेंट और कॉन्फ़िगरेशन को, साइट के लाइव चैनल पर डिप्लॉय करता है
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
यह सिर्फ़ Hosting साइट के कॉन्फ़िगरेशन और Hosting कॉन्टेंट को, साइट के लिए झलक दिखाने वाले चैनल पर डिप्लॉय करता है
firebase deploy \
--only storage:TARGET_NAME
यह सिर्फ़ बताए गए Cloud Storage टारगेट के लिए नियम फ़ाइल को डिप्लॉय करता है
firebase deploy \
--only database:TARGET_NAME
यह सिर्फ़ बताए गए Realtime Database टारगेट के लिए नियम फ़ाइल को डिप्लॉय करता है