पैरामीटर एक ऐसा तरीका है जिसकी मदद से उपयोगकर्ता, इंस्टॉल किए गए किसी एक्सटेंशन के हर इंस्टेंस को पसंद के मुताबिक बनाता है. पैरामीटर एक्सटेंशन चुनें. पैरामीटर की वैल्यू इनमें से कोई भी हो सकती है: अपने-आप भरी गई (इसके बाद 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 (ज़रूरी नहीं) |
स्ट्रिंग |
पैरामीटर के बारे में पूरी जानकारी उपयोगकर्ता को तब दिखाया जाता है, जब उन्हें पैरामीटर के वैल्यू Markdown के साथ काम करता है | ||||
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 सेवा, पैरामीटर वैल्यू एंट्री के समय इनकी पुष्टि नहीं करती:
- तय किए गए डेटाबेस या 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 |
एक्सटेंशन में मौजूद सभी संसाधनों पर लागू होने वाले लेबल |