पैरामीटर एक ऐसा तरीका है जिसकी मदद से उपयोगकर्ता, इंस्टॉल किए गए किसी एक्सटेंशन के हर इंस्टेंस को पसंद के मुताबिक बनाता है. पैरामीटर, एक्सटेंशन के लिए एनवायरमेंट वैरिएबल की तरह होते हैं. पैरामीटर की वैल्यू, अपने-आप भरी जा सकती हैं (इंस्टॉलेशन के बाद 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 प्रोजेक्ट के लिए यूनीक आइडेंटिफ़ायर जिसमें एक्सटेंशन इंस्टॉल किया गया है |
सामान्य फ़ॉर्मैट:
वैल्यू का उदाहरण: |
DATABASE_URL |
Firebase प्रोजेक्ट का डिफ़ॉल्ट Realtime Database इंस्टेंस यूआरएल |
सामान्य फ़ॉर्मैट:
वैल्यू का उदाहरण: |
DATABASE_INSTANCE |
Firebase प्रोजेक्ट का डिफ़ॉल्ट Realtime Database इंस्टेंस का नाम आम तौर पर, यह वैल्यू प्रोजेक्ट आईडी जैसी होती है या |
सामान्य फ़ॉर्मैट:
वैल्यू का उदाहरण: |
STORAGE_BUCKET |
Firebase प्रोजेक्ट की डिफ़ॉल्ट Cloud Storage बकेट का नाम |
सामान्य फ़ॉर्मैट:
वैल्यू का उदाहरण: |
एक्सटेंशन इंस्टॉलेशन से मिली डिफ़ॉल्ट वैल्यू वाला पैरामीटर | ||
EXT_INSTANCE_ID |
इंस्टॉल किए गए एक्सटेंशन इंस्टेंस के लिए यूनीक आइडेंटिफ़ायर यह वैल्यू, |
इंस्टॉल किए गए पहले इंस्टेंस के लिए सामान्य फ़ॉर्मैट (Firebase के ज़रिए अपने-आप असाइन किया जाता है; इंस्टॉलेशन के दौरान उपयोगकर्ता इसमें बदलाव नहीं कर सकता):
वैल्यू का उदाहरण: इंस्टॉल किए गए दूसरे इंस्टेंस और उसके बाद के इंस्टेंस के लिए सामान्य फ़ॉर्मैट
(Firebase इसे अपने-आप असाइन करता है; इंस्टॉलेशन के दौरान उपयोगकर्ता इसे बदल सकता है):
वैल्यू का उदाहरण: |
उपयोगकर्ता से कॉन्फ़िगर किए गए पैरामीटर
किसी उपयोगकर्ता को एक्सटेंशन के इंस्टॉल किए गए हर इंस्टेंस को पसंद के मुताबिक बनाने की सुविधा देने के लिए, आपके पास उपयोगकर्ता से इंस्टॉलेशन के दौरान पैरामीटर वैल्यू तय करने के लिए कहने का विकल्प है. इन वैल्यू का अनुरोध करने के लिए, अपनी 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 (ज़रूरी नहीं) |
स्ट्रिंग |
पैरामीटर के बारे में पूरी जानकारी उपयोगकर्ता को तब दिखाया जाता है, जब उससे पैरामीटर की वैल्यू पूछी जाती है मार्कडाउन की सुविधा उपलब्ध है | ||||
type (ज़रूरी नहीं) |
स्ट्रिंग |
उपयोगकर्ता पैरामीटर की वैल्यू कैसे सेट करता है, इसके लिए इनपुट का तरीका (उदाहरण के लिए, सीधे टेक्स्ट डालना या ड्रॉपडाउन सूची से चुनना) मान्य वैल्यू में ये शामिल हैं:
अगर इस फ़ील्ड को शामिल नहीं किया जाता है, तो पैरामीटर डिफ़ॉल्ट रूप से |
||||
options (अगर पैरामीटर type
select या multiSelect है, तो ज़रूरी है)
|
सूची |
वैल्यू की सूची, जिसमें से उपयोगकर्ता कोई वैल्यू चुन सकता है
|
||||
resourceType (अगर पैरामीटर type
selectResource है, तो ज़रूरी है)
|
स्ट्रिंग |
Firebase का वह रिसॉर्स टाइप जिसे उपयोगकर्ता को चुनने के लिए कहा जाएगा. फ़िलहाल, सिर्फ़ Cloud Storage बकेट में रिसॉर्स सिलेक्टर काम करते हैं:
ऐसी |
||||
example (ज़रूरी नहीं) |
स्ट्रिंग |
पैरामीटर के लिए वैल्यू का उदाहरण |
||||
validationRegex (ज़रूरी नहीं) (सिर्फ़ तब लागू होता है, जब पैरामीटर type की वैल्यू
string हो)
|
स्ट्रिंग |
पैरामीटर की उपयोगकर्ता से कॉन्फ़िगर की गई वैल्यू की पुष्टि करने के लिए रेगुलर एक्सप्रेशन वाली स्ट्रिंग रेगुलर एक्सप्रेशन को go लाइब्रेरी: RE2 का इस्तेमाल करके कंपाइल किया जाता है पुष्टि करने के बारे में ज़्यादा जानने के लिए, यहां दिए गए पुष्टि करने और गड़बड़ी के मैसेज देखें. |
||||
validationErrorMessage (ज़रूरी नहीं) |
स्ट्रिंग |
गड़बड़ी के मैसेज के बारे में ज़्यादा जानने के लिए, यहां दिए गए पुष्टि करने और गड़बड़ी के मैसेज देखें. |
||||
default (ज़रूरी नहीं) |
स्ट्रिंग |
अगर उपयोगकर्ता पैरामीटर की वैल्यू को खाली छोड़ देता है, तो पैरामीटर की डिफ़ॉल्ट वैल्यू अगर लागू हो, तो |
||||
required (ज़रूरी नहीं) |
बूलियन |
इससे यह तय होता है कि पैरामीटर की वैल्यू के लिए उपयोगकर्ता से पूछे जाने पर, वह खाली स्ट्रिंग सबमिट कर सकता है या नहीं अगर |
||||
immutable (ज़रूरी नहीं) |
बूलियन |
इससे यह तय होता है कि उपयोगकर्ता, इंस्टॉलेशन के बाद पैरामीटर की वैल्यू बदल सकता है या नहीं. उदाहरण के लिए, अगर वे एक्सटेंशन को फिर से कॉन्फ़िगर करते हैं अगर
ध्यान दें: अगर आपने अपने एक्सटेंशन के डिप्लॉय किए गए फ़ंक्शन के लिए,
"location"
पैरामीटर तय किया है, तो आपको इसके param
ऑब्जेक्ट में यह |
उपयोगकर्ता की कॉन्फ़िगर की गई वैल्यू की पुष्टि करना और गड़बड़ी के मैसेज
string
के type
के साथ पैरामीटर सेट अप करते समय, आपको पैरामीटर के validationRegex
फ़ील्ड की मदद से, रेगुलर एक्सप्रेशन की सही पुष्टि करनी होगी.
साथ ही, कई एक्सटेंशन के लिए, पैरामीटर की आम तौर पर अनुरोध की जाने वाली वैल्यू, डेटाबेस पाथ या Cloud Storage बकेट होती है. ध्यान रखें कि इंस्टॉल, फिर से कॉन्फ़िगर करने या अपडेट करने के दौरान, पैरामीटर की वैल्यू एंट्री के समय, Extensions सेवा इनकी पुष्टि नहीं करती:
- उपयोगकर्ता के Firebase प्रोजेक्ट में, चुना गया डेटाबेस या Cloud Storage बकेट सेट अप किया गया है या नहीं
- उपयोगकर्ता के डेटाबेस में, बताए गए डेटाबेस पाथ का मौजूद होना
हालांकि, जब एक्सटेंशन अपने संसाधनों को डिप्लॉय कर रहा होता है, तो अगर प्रोजेक्ट में रेफ़रंस वाला डेटाबेस या Cloud Storage बकेट अब तक सेट अप नहीं किया गया है, तो Firebase कंसोल या Firebase CLI गड़बड़ी का मैसेज दिखाएगा.
हमारा सुझाव है कि आप 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/vpcConnectorEgressSettings | VPC कनेक्टर का इग्रेस | vpcConnectorEgressSettings |
वीपीएन कनेक्टर कॉन्फ़िगर होने पर, बाहर जाने वाले ट्रैफ़िक को कंट्रोल करता है |
firebaseextensions.v1beta.function/vpcConnector | VPC कनेक्टर | vpcConnector |
Cloud Functions को तय किए गए VPC कनेक्टर से कनेक्ट करता है. |
firebaseextensions.v1beta.function/minInstances | फ़ंक्शन के कम से कम इंस्टेंस | minInstances |
एक साथ चलने वाले इस फ़ंक्शन के इंस्टेंस की कम से कम संख्या |
firebaseextensions.v1beta.function/maxInstances | फ़ंक्शन के ज़्यादा से ज़्यादा इंस्टेंस | maxInstances |
एक बार में इस फ़ंक्शन के इंस्टेंस की ज़्यादा से ज़्यादा संख्या |
firebaseextensions.v1beta.function/ingressSettings | इन्ग्रेस सेटिंग | ingressSettings |
यह कंट्रोल करता है कि इनकमिंग ट्रैफ़िक कहां से स्वीकार किया जाए |
firebaseextensions.v1beta.function/labels | लेबल | labels |
एक्सटेंशन में मौजूद सभी संसाधनों पर लागू होने वाले लेबल |