अपने एक्सटेंशन में पैरामीटर सेट अप और उनका इस्तेमाल करना

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

ये पैरामीटर आपके एक्सटेंशन में संदर्भ के लिए उपलब्ध हैं सोर्स कोड, आपकी extension.yaml फ़ाइल, और आपकी POSTINSTALL.md को फ़ंक्शन करता है फ़ाइल से लिए जाते हैं. नाम वाले पैरामीटर का रेफ़रंस देने का तरीका जानने के लिए, सिंटैक्स यहां दिया गया है PARAMETER_NAME:

  • अपने फ़ंक्शन के सोर्स कोड में, params मॉड्यूल (उदाहरण के लिए, params.defineInt("PARAMETER_NAME")) या process.env.PARAMETER_NAME.

  • extension.yaml और POSTINSTALL.md में, इस्तेमाल करें ${param:PARAMETER_NAME}.

    इंस्टॉलेशन के बाद, Firebase कंसोल POSTINSTALL.md फ़ाइल अपलोड करता है और इंस्टॉल किए गए इंस्टेंस के लिए, असल वैल्यू.

अपने-आप भरे गए पैरामीटर

किसी एक्सटेंशन के इंस्टॉल किए गए हर इंस्टेंस की ऐक्सेस, अपने-आप कई Firebase से मिले डिफ़ॉल्ट अपने-आप भरे गए पैरामीटर (टेबल देखें नीचे दिया गया है). ये पैरामीटर मान या तो Firebase के लिए डिफ़ॉल्ट मान होते हैं प्रोजेक्ट (जैसे कि डिफ़ॉल्ट स्टोरेज बकेट) या किसी खास एक्सटेंशन के आधार पर (जैसे कि एक्सटेंशन का इंस्टेंस आईडी).

अपने-आप भरी गई सभी पैरामीटर वैल्यू को बदला नहीं जा सकता. वे इस समय पर सेट हैं प्रोजेक्ट बनाना या एक्सटेंशन इंस्टॉल करना.

भले ही Firebase, एक्सटेंशन के लिए ये पैरामीटर वैल्यू अपने-आप भर देता है, Firebase, इंस्टॉल करने के तरीके. एक्सटेंशन को इंस्टॉल करने वाले उपयोगकर्ता को और इंस्टॉल करने से पहले, प्रोजेक्ट में लागू प्रॉडक्ट. उदाहरण के लिए, अगर आपके एक्सटेंशन में Cloud Firestore शामिल है, तो उपयोगकर्ता को अपने प्रोजेक्ट में Cloud Firestore सेट अप करना होगा. हमारा सुझाव है कि आप अपने उपयोगकर्ताओं को इन ज़रूरी शर्तों के बारे में सूचना दें PREINSTALL.md फ़ाइल में सेव किया जाएगा.

अपने-आप भरे गए पैरामीटर के लिए रेफ़रंस जानकारी पैरामीटर वैल्यू (Firebase से मिली)
Firebase प्रोजेक्ट से डिफ़ॉल्ट वैल्यू वाले पैरामीटर
PROJECT_ID उस Firebase प्रोजेक्ट के लिए यूनीक आइडेंटिफ़ायर जिसमें एक्सटेंशन इंस्टॉल किया गया

सामान्य फ़ॉर्मैट:
project-id

वैल्यू का उदाहरण:
project-123

DATABASE_URL Firebase प्रोजेक्ट का डिफ़ॉल्ट Realtime Database इंस्टेंस यूआरएल

सामान्य फ़ॉर्मैट:
https://project-id-default-rtdb.firebaseio.com
(US इंस्टेंस)
या
https://project-id-default-rtdb.region-code.firebasedatabase.app
(अमेरिका के बाहर के इंस्टेंस)

वैल्यू का उदाहरण:
https://project-123-default-rtdb.firebaseio.com

DATABASE_INSTANCE

Firebase प्रोजेक्ट के डिफ़ॉल्ट Realtime Database इंस्टेंस का नाम

आम तौर पर, यह वैल्यू प्रोजेक्ट आईडी के बराबर होती है या इतनी देर में खत्म होती है -default-rtdb.

सामान्य फ़ॉर्मैट:
project-id

वैल्यू का उदाहरण:
project-123

STORAGE_BUCKET Firebase प्रोजेक्ट की डिफ़ॉल्ट Cloud Storage बकेट का नाम

सामान्य फ़ॉर्मैट:
project-id.appspot.com

वैल्यू का उदाहरण:
project-123.appspot.com

एक्सटेंशन इंस्टॉलेशन से मिले डिफ़ॉल्ट वैल्यू वाला पैरामीटर
EXT_INSTANCE_ID

इंस्टॉल किए गए एक्सटेंशन इंस्टेंस के लिए यूनीक आइडेंटिफ़ायर

यह वैल्यू इससे जनरेट होती है: name फ़ील्ड extension.yaml फ़ाइल में बताया गया है.

पहले इंस्टॉल किए गए इंस्टेंस के लिए सामान्य फ़ॉर्मैट (अपने-आप असाइन होने की सुविधा) Firebase से; इंस्टॉलेशन के दौरान उपयोगकर्ता के बदलाव नहीं किए जा सकते):
name-from-extension.yaml

वैल्यू का उदाहरण:
my-awesome-extension


दूसरे इंस्टॉल और इसके बाद के इंस्टेंस के लिए, सामान्य फ़ॉर्मैट (Firebase से अपने-आप असाइन हो जाता है; उपयोगकर्ता बदलाव किया जा सकता है इंस्टॉलेशन के दौरान:
name-from-extension.yaml-4-digit-alphanumeric-hash

वैल्यू का उदाहरण:
my-awesome-extension-6m31

उपयोगकर्ता के कॉन्फ़िगर किए गए पैरामीटर

किसी उपयोगकर्ता को एक्सटेंशन के इंस्टॉल किए गए हर इंस्टेंस को पसंद के मुताबिक बनाने की सुविधा देने के लिए, आपके पास उपयोगकर्ता से इंस्टॉलेशन के दौरान पैरामीटर वैल्यू तय करने के लिए कहने का विकल्प है. इन वैल्यू का अनुरोध करने के लिए, अपनी extension.yaml फ़ाइल के params सेक्शन में प्रॉम्प्ट सेट अप करें.

यहां एक उदाहरण के तौर पर params सेक्शन दिया गया है. इसके बाद, दिए गए सभी उपलब्ध आइटम की जानकारी देने वाली टेबल दी गई है पैरामीटर फ़ील्ड.

# extension.yaml
...

# Parameters (environment variables) for which the user specifies values during installation
params:
  - param: DB_PATH
    label: Realtime Database path
    description: >-
      What is the Realtime Database path where you will write new text
      for sentiment analysis?
    type: string
    validationRegex: ^\S+$
    validationErrorMessage: Realtime Database path cannot contain spaces.
    example: path/to/posts
    required: true

  - param: TEXT_KEY
    label: Key for text
    description: What is the name of the key that will contain text to be analyzed?
    type: string
    default: textToAnalyze
    required: true

अपनी extension.yaml फ़ाइल के params सेक्शन में, इन फ़ील्ड का इस्तेमाल करें का इस्तेमाल करें:

फ़ील्ड टाइप जानकारी
param
(ज़रूरी है)
स्ट्रिंग पैरामीटर का नाम
label
(ज़रूरी है)
स्ट्रिंग

पैरामीटर के बारे में कम शब्दों में जानकारी

उपयोगकर्ता को तब दिखाया जाता है, जब उन्हें पैरामीटर के वैल्यू

description
(ज़रूरी नहीं)
स्ट्रिंग

पैरामीटर के बारे में पूरी जानकारी

उपयोगकर्ता को तब दिखाया जाता है, जब उन्हें पैरामीटर के वैल्यू

Markdown के साथ काम करता है

type
(ज़रूरी नहीं)
स्ट्रिंग

उपयोगकर्ता किसी पैरामीटर की वैल्यू कैसे सेट करता है, इसके लिए इनपुट का तरीका (इसके लिए उदाहरण के लिए, सीधे टेक्स्ट डालें या ड्रॉपडाउन सूची से चुनें)

मान्य वैल्यू में ये शामिल हैं:

  • string: फ़्री-फ़ॉर्म टेक्स्ट डालने की अनुमति देता है (इनकी सीमा तय है निजी validationRegex)
  • select: किसी विकल्पों की पहले से तय सूची. अगर आपने यह वैल्यू डाली है, तो आपको options के बारे में भी बताएं फ़ील्ड.
  • multiSelect: एक या उससे ज़्यादा एंट्री चुन सकते हैं विकल्पों की पहले से तय सूची में से चुनें. अगर आपने यह वैल्यू दी है, तो आपको options फ़ील्ड की जानकारी भी देनी होगी.
  • selectResource: इससे किसी खास कैटगरी को चुना जा सकता है Firebase संसाधन का टाइप (जैसे कि एक Cloud Storage बकेट) है.

    इस तरह का पैरामीटर तय करने पर, उपयोगकर्ताओं को इंस्टॉलेशन यूज़र इंटरफ़ेस (यूआई) में उपयोगकर्ता के लिए आसान चुनने का विजेट; इसके लिए वजह है, तो कभी भी selectResource पैरामीटर का इस्तेमाल करें किया जा सकता है.

    अगर आप यह मान दर्ज करते हैं, तो आपको resourceType फ़ील्ड.

  • secret: यह संवेदनशील स्ट्रिंग को सेव करने की अनुमति देता है, जैसे कि तीसरे पक्ष की सेवाओं के लिए एपीआई पासकोड. ये वैल्यू यहां सेव की जाएंगी Cloud Secret Manager.

    क्लाउड सीक्रेट मैनेजर एक पैसे चुकाकर ली जाने वाली सेवा है. इसका इस्तेमाल आपको एक्सटेंशन इंस्टॉल करने वाले उपयोगकर्ताओं से शुल्क देना होगा. अगर आपको secret पैरामीटर टाइप, दस्तावेज़ में आपका PREINSTALL वह फ़ाइल है जिसमें आपका एक्सटेंशन, Cloud Secret Manager का इस्तेमाल करता है.

अगर इस फ़ील्ड को शामिल नहीं किया जाता है, तो पैरामीटर डिफ़ॉल्ट रूप से type को दिखाता है कुल string.

options
(पैरामीटर type के लिए ज़रूरी है select या multiSelect है)
सूची

उपयोगकर्ता इनमें से जो वैल्यू चुन सकते हैं उनकी सूची

options फ़ील्ड में label और value फ़ील्ड शामिल करें:

  • label (स्ट्रिंग): चुने जा सकने वाले विकल्प का छोटा ब्यौरा
  • value (string): ऐसा विकल्प जिसे चुना जा सकता है

options फ़ील्ड के लिए value फ़ील्ड की वैल्यू देना ज़रूरी है.
अगर label को हटा दिया जाता है, तो सूची का विकल्प डिफ़ॉल्ट रूप से दिखता है value.

resourceType
(अगर पैरामीटर type selectResource है, तो ज़रूरी है)
स्ट्रिंग

उपयोगकर्ता को चुनने का अनुरोध करने वाले Firebase संसाधन का टाइप. फ़िलहाल, सिर्फ़ Cloud Storage बकेट में रिसॉर्स सिलेक्टर काम करते हैं:

संसाधन प्रकार टाइप आईडी
Cloud Storage बकेट storage.googleapis.com/Bucket

resourceType की अज्ञात वैल्यू को नज़रअंदाज़ कर दिया जाएगा और यूज़र इंटरफ़ेस (यूआई) पैरामीटर को फ़्री फ़ॉर्म string इनपुट के तौर पर रेंडर करेगा फ़ील्ड.

example
(ज़रूरी नहीं)
स्ट्रिंग

पैरामीटर के लिए वैल्यू का उदाहरण

validationRegex
(ज़रूरी नहीं)
(सिर्फ़ तब लागू होता है, जब type पैरामीटर यह हो string)
स्ट्रिंग

पैरामीटर की उपयोगकर्ता की ओर से कॉन्फ़िगर की गई वैल्यू की पुष्टि करने के लिए रेगुलर एक्सप्रेशन स्ट्रिंग

रेगुलर एक्सप्रेशन को go लाइब्रेरी: RE2 का इस्तेमाल करके कंपाइल किया जाता है

पुष्टि करने के बारे में ज़्यादा जानने के लिए, यहां दिए गए पुष्टि करने और गड़बड़ी के मैसेज देखें.

validationErrorMessage
(ज़रूरी नहीं)
स्ट्रिंग

अगर validationRegex काम नहीं करता है, तो दिखने वाला गड़बड़ी का मैसेज

गड़बड़ी के मैसेज की सुविधा के बारे में जानने के लिए, यहां जाएं पुष्टि करना और गड़बड़ी करना मैसेज नीचे दिया गया है.

default
(ज़रूरी नहीं)
स्ट्रिंग

अगर उपयोगकर्ता पैरामीटर को छोड़ देता है, तो पैरामीटर की डिफ़ॉल्ट वैल्यू वैल्यू वाला फ़ील्ड खाली है

अगर लागू हो, तो अपने-आप पॉप्युलेट हुए पैरामीटर की वैल्यू default वैल्यू के लिए (उदाहरण के लिए, IMG_BUCKET पैरामीटर इमेज का साइज़ बदलें एक्सटेंशन).

required
(ज़रूरी नहीं)
बूलियन

यह तय करता है कि उपयोगकर्ता खाली स्ट्रिंग सबमिट कर सकता है या नहीं पैरामीटर की वैल्यू के लिए प्रॉम्प्ट किया जाता है

अगर required को शामिल नहीं किया जाता है, तो यह वैल्यू डिफ़ॉल्ट तौर पर सेट होती है true (यानी कि एक ज़रूरी पैरामीटर).

immutable
(ज़रूरी नहीं)
बूलियन

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

अगर immutable को शामिल नहीं किया जाता है, तो यह वैल्यू डिफ़ॉल्ट तौर पर सेट होती है false.

ध्यान दें: अगर आपने अपने एक्सटेंशन के डिप्लॉय किए गए फ़ंक्शन के लिए, "location" पैरामीटर तय किया है, तो आपको इसके param ऑब्जेक्ट में यह immutable फ़ील्ड शामिल करना चाहिए.

उपयोगकर्ता की कॉन्फ़िगर की गई वैल्यू की पुष्टि करने और गड़बड़ी के मैसेज भेजने की सुविधा

string के type के साथ पैरामीटर सेट अप करते समय, आपको पैरामीटर के validationRegex फ़ील्ड की मदद से, रेगुलर एक्सप्रेशन की सही पुष्टि करनी होगी.

साथ ही, कई एक्सटेंशन के लिए आम तौर पर अनुरोध की जाने वाली पैरामीटर वैल्यू एक डेटाबेस होती है पाथ या Cloud Storage बकेट. ध्यान रखें कि इंस्टॉल, फिर से कॉन्फ़िगर करने या अपडेट करने के दौरान, Extensions सेवा, पैरामीटर वैल्यू एंट्री के समय इनकी पुष्टि नहीं करती:

  • तय किए गए डेटाबेस या Cloud Storage बकेट को उपयोगकर्ता का Firebase प्रोजेक्ट
  • उपयोगकर्ता के डेटाबेस में बताया गया डेटाबेस पाथ मौजूद है या नहीं

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

हम सशक्त सुझाव देते हैं कि आप उपयोगकर्ताओं को PREINSTALL फ़ाइल संबंधी जानकारी देनी होगी, ताकि जब वे आपका एक्सटेंशन इंस्टॉल करें, तो वह सफलतापूर्वक इंस्टॉल होता है और उम्मीद के मुताबिक काम करता है.

सिस्टम पैरामीटर

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

आम तौर पर, आपको इन पैरामीटर के लिए कुछ भी एलान करने की ज़रूरत नहीं होती है extension.yaml. ये हर एक्सटेंशन इंस्टेंस के लिए अपने-आप तय हो जाते हैं. साथ ही, उपयोगकर्ता आपका एक्सटेंशन इंस्टॉल करते समय, कस्टम वैल्यू सेट कर सकते हैं.

हालांकि, यदि आपके एक्सटेंशन की विशेष संसाधन आवश्यकताएं हैं, तो तो आपको extension.yaml में हर संसाधन के लेवल पर खास वैल्यू सेट करनी होगी. ये प्रति-संसाधन कॉन्फ़िगरेशन सेटिंग, उपयोगकर्ता के एक्सटेंशन को ओवरराइड कर देंगी इंस्टेंस-वाइड सेटिंग. उदाहरण के लिए:

resources:
- name: high_memory_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function needs at least 1GB of memory!
  properties:
    httpsTrigger: {}
    runtime: nodejs18
    availableMemoryMb: 1024
- name: normal_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function has no special memory requirements. It will use the
    default value, or the value of `firebaseextension.v1beta.function/memory`
  properties:
    httpsTrigger: {}
    runtime: nodejs18

उपलब्ध सिस्टम पैरामीटर हैं:

नाम लेबल (मैन्युअल तरीके से) properties में संबंधित फ़ील्ड ब्यौरा
firebaseextensions.v1beta.Function/location जगह location Cloud Functions को किस इलाके में डिप्लॉय किया जाना चाहिए?
firebaseextensions.v1beta.Function/memory फ़ंक्शन मेमोरी memory हर फ़ंक्शन के लिए, कितने मेगाबाइट मेमोरी खाली की जानी चाहिए?
firebaseextensions.v1beta.Function/timeoutSeconds फ़ंक्शन टाइम आउट timeout टाइम आउट होने से पहले, फ़ंक्शन कितने सेकंड तक चलने चाहिए?
firebaseextensions.v1beta.Function/vpcConnectorEwaysSettings VPC कनेक्टर इग्रेस डेटा ट्रैफ़िक vpcConnectorEgressSettings VPC कनेक्टर कॉन्फ़िगर होने पर, आउटगोइंग ट्रैफ़िक को कंट्रोल किया जाता है
firebaseextensions.v1beta.Function/vpcConnector VPC कनेक्टर vpcConnector Cloud Functions को, बताए गए VPC कनेक्टर से कनेक्ट करता है.
firebaseextensions.v1beta.फ़ंक्शन/minInstances कम से कम फ़ंक्शन इंस्टेंस minInstances एक साथ चलाने के लिए इस फ़ंक्शन के कम से कम इंस्टेंस की संख्या
firebaseextensions.v1beta.function/maxInstances फ़ंक्शन के ज़्यादा से ज़्यादा इंस्टेंस maxInstances एक बार में इस फ़ंक्शन को ज़्यादा से ज़्यादा कितनी बार चलाया जा सकता है
firebaseextensions.v1beta.Function/inग्रेसSettings इन्ग्रेस डेटा ट्रैफ़िक की सेटिंग ingressSettings यह नीति कंट्रोल करती है कि आने वाले ट्रैफ़िक कहां से स्वीकार किए जाते हैं
firebaseextensions.v1beta.Function/labels लेबल labels एक्सटेंशन में मौजूद सभी संसाधनों पर लागू होने वाले लेबल