एक्सटेंशन मेनिफ़ेस्ट की मदद से प्रोजेक्ट कॉन्फ़िगरेशन मैनेज करें

एक्सटेंशन मेनिफ़ेस्ट, एक्सटेंशन इंस्टेंस और उनके कॉन्फ़िगरेशन. मेनिफ़ेस्ट की मदद से ये काम किए जा सकते हैं:

  • अपने एक्सटेंशन के कॉन्फ़िगरेशन को दूसरों के साथ शेयर करना
  • अलग-अलग प्रोजेक्ट के बीच अपने एक्सटेंशन कॉन्फ़िगरेशन को कॉपी करें (जैसे कि स्टेजिंग प्रोजेक्ट को आपके प्रोडक्शन प्रोजेक्ट से जोड़ा जा सकता है)
  • अपने सभी एक्सटेंशन एक साथ डिप्लॉय करें
  • Firebase Local Emulator Suite का इस्तेमाल करके जांच करें कि आपके एक्सटेंशन आपके ऐप्लिकेशन के साथ कैसे काम करते हैं
  • अपने एक्सटेंशन के कॉन्फ़िगरेशन को सोर्स कंट्रोल पर सेट करें
  • अपनी CI/CD पाइपलाइन में एक्सटेंशन शामिल करें

एक्सटेंशन मेनिफ़ेस्ट के दो हिस्से होते हैं:

  • आपके firebase.json का extensions सेक्शन, जो इंस्टेंस का मैप है आईडी को एक्सटेंशन वर्शन का रेफ़रंस देने के लिए. उदाहरण के लिए:

    {
     "extensions": {
       "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
       "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
     }
    }
    
  • .env फ़ाइलों में आपके हर एक्सटेंशन का कॉन्फ़िगरेशन है इंस्टेंस, आपके Firebase प्रोजेक्ट की extensions/ सबडायरेक्ट्री में डायरेक्ट्री. उदाहरण के लिए, storage-resize-images के एक इंस्टेंस में .env फ़ाइल का फ़ॉर्मैट:

    IMAGE_TYPE=jpeg
    LOCATION=us-central1
    IMG_BUCKET=${param:PROJECT_ID}.appspot.com
    IMG_SIZES=100x100
    DELETE_ORIGINAL_FILE=false

एक्सटेंशन मेनिफ़ेस्ट बनाना

एक्सटेंशन मेनिफ़ेस्ट बनाने के तीन तरीके हैं:

  • Firebase सीएलआई की मदद से अपने एक्सटेंशन मेनिफ़ेस्ट को मैनेज करें
  • किसी प्रोजेक्ट के एक्सटेंशन कॉन्फ़िगरेशन को एक्सपोर्ट करना
  • मेनिफ़ेस्ट फ़ाइलों में मैन्युअल तरीके से बदलाव करें

नीचे पहले दो तरीकों की व्याख्या की गई है.

Firebase सीएलआई की मदद से अपने एक्सटेंशन मेनिफ़ेस्ट को मैनेज करें

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

उदाहरण के लिए:

firebase ext:install --local firebase/firestore-bigquery-export

ऊपर दिए गए आदेश को चलाने से आपको का नवीनतम वर्शन कॉन्फ़िगर करने का संकेत मिलेगा firebase/firestore-bigquery-export एक्सटेंशन चुनें और कॉन्फ़िगरेशन को इसमें सेव करें मेनिफ़ेस्ट में बताए गए हैं, लेकिन इससे आपके प्रोजेक्ट के लिए कॉन्फ़िगरेशन को डिप्लॉय नहीं किया जाएगा.

एक्सटेंशन मेनिफ़ेस्ट में बदलाव करने वाले निर्देशों के कुछ और उदाहरण यहां दिए गए हैं:

# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local

# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local

# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local 

# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local

किसी प्रोजेक्ट के एक्सटेंशन कॉन्फ़िगरेशन को एक्सपोर्ट करना

किसी प्रोजेक्ट के मौजूदा एक्सटेंशन कॉन्फ़िगरेशन को मेनिफ़ेस्ट में सेव करने के लिए, यह करें फ़ॉलो किया जा रहा है:

  1. अगर आपने पहले से ऐसा नहीं किया है, तो Firebase सीएलआई सेट अप करें
  2. शेल प्रॉम्प्ट से, प्रोजेक्ट डायरेक्ट्री में बदलें. (आपका प्रोजेक्ट डायरेक्ट्री में firebase.json फ़ाइल है).
  3. ext:export निर्देश चलाएं:
    firebase ext:export

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

Firebase Local Emulator Suite की मदद से, एक्सटेंशन के कॉन्फ़िगरेशन की जांच करें

अपने एक्सटेंशन मेनिफ़ेस्ट में कुछ एक्सटेंशन इंस्टेंस जोड़ने के बाद, ये काम किए जा सकते हैं Local Emulator Suite का इस्तेमाल करके इनकी जांच करें.

  1. Local Emulator Suite को इंस्टॉल और कॉन्फ़िगर करें.

  2. Local Emulator Suite शुरू करें:

    • एम्युलेटर सुइट को इंटरैक्टिव तरीके से चलाने के लिए, इसे चलाएं: firebase emulators:start
    • Emulator Suite को चलाने और टेस्ट स्क्रिप्ट चलाने के लिए, यह चलाएं: firebase emulators:exec my-test.sh

अब, अगर आपके मेनिफ़ेस्ट में एक्सटेंशन इंस्टेंस मौजूद हैं, तो Local Emulator Suite उन एक्सटेंशन का सोर्स कोड यहां डाउनलोड करेगा: ~/.cache/firebase/extensions. डाउनलोड होने के बाद, Local Emulator Suite शुरू हो जाएगा और आपके पास एक्सटेंशन' बैकग्राउंड से ट्रिगर होने वाले फ़ंक्शन और अपने ऐप्लिकेशन को एम्युलेटर से कनेक्ट करें सुइट का इस्तेमाल किया जा सकता है.

किसी प्रोजेक्ट में एक्सटेंशन कॉन्फ़िगरेशन डिप्लॉय करना

अपने एक्सटेंशन मेनिफ़ेस्ट में कुछ एक्सटेंशन इंस्टेंस जोड़ने के बाद, ये काम किए जा सकते हैं इसे Firebase सीएलआई का इस्तेमाल करके किसी प्रोजेक्ट में डिप्लॉय किया जा सकता है. जब आप किसी एक्सटेंशन मेनिफ़ेस्ट, आप सभी एक्सटेंशन को इंस्टॉल, अपडेट और कॉन्फ़िगर कर सकते हैं मेनिफ़ेस्ट में एक बार में इंस्टेंस.

एक्सटेंशन मेनिफ़ेस्ट को डिप्लॉय करने के लिए:

  1. शेल प्रॉम्प्ट से, उस डायरेक्ट्री में बदलें जिसमें एक्सटेंशन कॉन्फ़िगरेशन. (यह वह डायरेक्ट्री है जिसमें firebase.json. अगर आपने अभी-अभी ext:export चलाया है, तो इसका मतलब है कि आप पहले से ही दाईं ओर मौजूद हैं डायरेक्ट्री देखें.)
  2. deploy निर्देश चलाएं. अगर आपको किसी प्रोजेक्ट में एक्सटेंशन डिप्लॉय करने हैं मौजूदा को छोड़कर, --project= भी बताएं:
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

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

प्रोजेक्ट के हिसाब से एक्सटेंशन कॉन्फ़िगरेशन

सेव किए गए एक्सटेंशन के कॉन्फ़िगरेशन का इस्तेमाल, एक से ज़्यादा अलग-अलग प्रोजेक्ट: उदाहरण के लिए, स्टेजिंग प्रोजेक्ट और प्रोडक्शन प्रोजेक्ट. करते समय है, तो हो सकता है कि हर प्रोजेक्ट के लिए कुछ पैरामीटर वैल्यू अलग-अलग हों. प्रोजेक्ट-विशिष्ट .env फ़ाइल के ज़रिए ऐसा किया जा सकता है:

  • extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID के प्रोजेक्ट के बीच अलग-अलग पैरामीटर वैल्यू डालें
  • extensions/EXTENSION_INSTANCE_ID.env में शेयर की गई पैरामीटर वैल्यू डालें.

कभी-कभी, हो सकता है कि आप एक्सटेंशन: उदाहरण के लिए, हो सकता है कि आप किसी पहला प्रोडक्शन. इन पैरामीटर को .local फ़ाइल में डालें:

  • वे नॉन-सीक्रेट पैरामीटर डालें जिनका इस्तेमाल आपको एम्युलेशन के दौरान करना है extensions/EXTENSION_INSTANCE_ID.env.local
  • इसमें सीक्रेट पैरामीटर वैल्यू डालें extensions/EXTENSION_INSTANCE_ID.secret.local