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

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

डिप्लॉय किए गए टारगेट तब काम आते हैं, जब आपके पास एक से ज़्यादा होस्टिंग साइट, क्लाउड स्टोरेज बकेट या एक से ज़्यादा रीयलटाइम डेटाबेस इंस्टेंस हों. डिप्लॉय किए गए टारगेट की मदद से, Firebase सीएलआई आपके प्रोजेक्ट में मौजूद खास Firebase संसाधन या संसाधनों के ग्रुप के लिए सेटिंग डिप्लॉय कर सकता है. जैसे:

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

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

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

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

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

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

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

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

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

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

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

  • TYPE — काम का Firebase संसाधन टाइप

    • Firebase होस्टिंग साइट के लिए, hosting का इस्तेमाल करें.
  • 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

Cloud Storage या रीयल टाइम डेटाबेस के लिए डिप्लॉय किए गए टारगेट सेट अप करें

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

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

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

  • TYPE — काम का Firebase संसाधन टाइप

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

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

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

firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

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

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

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

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

ऊपर दिए गए उदाहरणों को जारी रखते हुए, जहां आपके Firebase प्रोजेक्ट में दो होस्टिंग साइट और तीन 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
तय किए गए टारगेट से सभी रिसॉर्स या होस्टिंग साइट हटा देता है

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

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

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

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

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

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

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

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