आपके एक्सटेंशन की स्पेसिफ़िकेशन फ़ाइल (extension.yaml
) में, एक्सटेंशन का मेटाडेटा होता है. इसमें एक्सटेंशन से बनाए गए संसाधनों, एक्सटेंशन के लिए ज़रूरी एपीआई, और ऐक्सेस के बारे में बताया जाता है. साथ ही, इसमें एक्सटेंशन की ओर से दिए गए, उपयोगकर्ता के कॉन्फ़िगर किए गए पैरामीटर के बारे में भी बताया जाता है.
इस पेज पर मौजूद टेबल में, extension.yaml
फ़ाइल के लिए उपलब्ध फ़ील्ड के बारे में बताया गया है.
बुनियादी और पहचान ज़ाहिर करने वाली जानकारी
name: your-extension-name
version: 1.0.0 # Semantic versioning (semver)
specVersion: v1beta # Always "v1beta"
license: Apache-2.0 # Always "Apache-2.0" (required to publish on extensions.dev)
billingRequired: true # Always "true"
displayName: Your extension name
description: >-
Description of the extension. (One or two
sentences.)
icon: icon.png
tags: [tag, anothertag]
sourceUrl: https://github.com/your-org/your-repo # GitHub repo URL
releaseNotesUrl: https://github.com/your-org/your-repo/blob/main/CHANGELOG.md
author:
authorName: Your Company
email: extensions@example.com
url: https://example.com/
contributors:
- authorName: Your Name
- authorName: Another Contributor
email: colleague@example.net
url: https://github.com/their-org/
बेसिक फ़ील्ड | |||||||||
---|---|---|---|---|---|---|---|---|---|
name string (ज़रूरी है) |
एक्सटेंशन के लिए आइडेंटिफ़ायर. इसमें सिर्फ़ छोटे अक्षर, संख्याएं, और डैश हो सकते हैं. इसमें ज़्यादा से ज़्यादा 40 वर्ण हो सकते हैं. ध्यान दें: इस वैल्यू का इस्तेमाल, एक्सटेंशन का इंस्टेंस आईडी जनरेट करने के लिए किया जाता है. इसके बाद, इस आईडी का इस्तेमाल एक्सटेंशन के सेवा खाते और एक्सटेंशन से जुड़े संसाधनों के नाम जनरेट करने के लिए किया जाता है. |
||||||||
version string (ज़रूरी है) |
एक्सटेंशन का वर्शन. सेमवर वर्शनिंग का पालन करना ज़रूरी है. उदाहरण के लिए, 1.2.0. |
||||||||
specVersion string (ज़रूरी है) |
Firebase एक्सटेंशन के वर्शन की खास जानकारी. मौजूदा वैल्यू: |
||||||||
license string (ज़रूरी नहीं) |
एक्सटेंशन का लाइसेंस. आपके एक्सटेंशन को |
||||||||
billingRequired boolean (ज़रूरी नहीं) |
एक्सटेंशन की ओर से इस्तेमाल की जाने वाली सेवाओं के लिए, पैसे चुकाकर लिया गया Firebase बिलिंग खाता ज़रूरी है या नहीं. इसे हमेशा |
||||||||
displayName string (ज़रूरी नहीं) |
एक्सटेंशन का डिसप्ले नेम (तीन से पांच शब्द). वर्ण सीमा 40 है. |
||||||||
description string (ज़रूरी नहीं) |
आपके एक्सटेंशन के काम के बारे में कम शब्दों में जानकारी (~1 वाक्य). | ||||||||
icon string (ज़रूरी नहीं) |
इस फ़ाइल का इस्तेमाल, यह फ़ाइल, स्क्वेयर PNG फ़ॉर्मैट में होनी चाहिए. साथ ही, इसका साइज़ 512x512 से 1024x1024 पिक्सल के बीच होना चाहिए.
फ़ाइल को उसी डायरेक्ट्री में रखें जिसमें अपने एक्सटेंशन के लिए आइकॉन डिज़ाइन करते समय, इन दिशा-निर्देशों का ध्यान रखें:
|
||||||||
tags स्ट्रिंग की सूची (ज़रूरी नहीं) |
टैग, ताकि लोग आपके एक्सटेंशन को खोज सकें.
ये टैग, Extensions Hub पर मौजूद कैटगरी से मैप होते हैं:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl string (ज़रूरी नहीं) |
सार्वजनिक यूआरएल, जहां एक्सटेंशन डायरेक्ट्री को ऐक्सेस किया जा सकता है. | ||||||||
releaseNotesUrl string (ज़रूरी नहीं) |
सार्वजनिक यूआरएल, जहां एक्सटेंशन के रिलीज़ नोट ऐक्सेस किए जा सकते हैं. | ||||||||
author one author object (optional) |
एक्सटेंशन के मुख्य लेखक और संपर्क व्यक्ति की जानकारी. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributors लेखक ऑब्जेक्ट की सूची (ज़रूरी नहीं) |
एक्सटेंशन के लिए योगदान देने वाले अन्य लेखक. contributors: - authorName: Your Name - authorName: Another Contributor email: colleague@example.net url: https://github.com/their-org/
|
Firebase और Google Cloud API
इन फ़ील्ड से पता चलता है कि एक्सटेंशन, Firebase और Google के किन एपीआई का इस्तेमाल करता है. जब उपयोगकर्ता एक्सटेंशन इंस्टॉल करते हैं, तो उनके पास अपने प्रोजेक्ट में इन एपीआई को अपने-आप चालू करने का विकल्प होता है.
apis:
- apiName: apiname.googleapis.com
reason: Explanation of why the extension uses this API
- apiName: anotherapiname.googleapis.com
reason: Explanation of why the extension uses this API
एपीआई फ़ील्ड | |
---|---|
apiName string (ज़रूरी है) |
Google API का नाम यह सेवा के नाम वाले फ़ील्ड से मेल खाना चाहिए. यह नाम, Google Cloud API लाइब्रेरी में हर एपीआई के खास जानकारी वाले पेज पर दिया गया है (उदाहरण) |
reason string (ज़रूरी है) |
इस बारे में कम शब्दों में जानकारी कि एक्सटेंशन को इस एपीआई का इस्तेमाल क्यों करना है |
IAM रोल
इन फ़ील्ड से पता चलता है कि एक्सटेंशन को किन क्लाउड आईएएम भूमिकाओं की ज़रूरत है. एक्सटेंशन के लिए उपलब्ध कराए गए सेवा खाते को ये भूमिकाएं दी जाती हैं.
इस्तेमाल की जा सकने वाली भूमिकाओं में से सिर्फ़ एक भूमिका तय की जा सकती है.
roles:
- role: product.role
reason: Explanation of why the extension needs this level of access
- role: anotherproduct.role
resource: projects/${project_id}/resource_type/*
reason: Explanation of why the extension needs this level of access
भूमिका वाले फ़ील्ड | |
---|---|
role string (ज़रूरी है) |
एक्सटेंशन को चलाने के लिए ज़रूरी IAM भूमिका का नाम यह इस्तेमाल की जा सकने वाली भूमिकाओं में से एक होनी चाहिए |
reason string (ज़रूरी है) |
इस बारे में कम शब्दों में जानकारी कि एक्सटेंशन को इस भूमिका से मिली अनुमति की ज़रूरत क्यों है |
resource string (ज़रूरी नहीं) |
भूमिका के दायरे को इस संसाधन तक सीमित करें. अगर इसे शामिल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से |
बाहरी सेवाएं
इन फ़ील्ड में, Firebase और Google से जुड़ी उन सेवाओं के बारे में बताया जाता है जिनका इस्तेमाल एक्सटेंशन करता है. आम तौर पर, ये REST API होते हैं. Firebase Extensions प्लैटफ़ॉर्म, इन सेवाओं के लिए अनुमति को अपने-आप चालू करने या अनुमति देने का कोई तरीका उपलब्ध नहीं कराता.
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
बाहरी सेवाओं के फ़ील्ड | |
---|---|
name string (ज़रूरी है) |
एक्सटेंशन को चलाने के लिए ज़रूरी बाहरी सेवा का नाम |
pricingUri string (ज़रूरी है) |
सेवा के लिए कीमत की जानकारी देने वाला यूआरआई |
उपयोगकर्ता के हिसाब से कॉन्फ़िगर किए जा सकने वाले पैरामीटर
इन फ़ील्ड से उन पैरामीटर के बारे में पता चलता है जिन्हें एक्सटेंशन, उपयोगकर्ताओं के लिए कॉन्फ़िगर करने के लिए उपलब्ध कराता है.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What do you want to set PARAM_ID to?
This is a longer description of the parameter, often phrased as a prompt
to the user.
- param: ANOTHER_PARAM_ID
label: Short description of the parameter
description: >
What do you want to set ANOTHER_PARAM_ID to?
This is a longer description of the parameter.
example: example-input
validationRegex: "^[a-zA-Z][a-zA-Z-]*[a-zA-Z]?$"
validationErrorMessage:
Must be a hyphen-delimited string of alphabetic characters
default: default-value
required: false
immutable: true
पैरामीटर फ़ील्ड | |
---|---|
param string (ज़रूरी है) |
पैरामीटर का नाम. इस नाम का इस्तेमाल, कोड में पैरामीटर की वैल्यू का रेफ़रंस देने के लिए किया जाता है. |
label string (ज़रूरी है) |
पैरामीटर के बारे में कम शब्दों में जानकारी. जब उपयोगकर्ता को पैरामीटर की वैल्यू डालने के लिए कहा जाता है, तब उसे यह टेक्स्ट दिखता है. |
description string (ज़रूरी नहीं) |
पैरामीटर के बारे में पूरी जानकारी. यह उपयोगकर्ता को तब दिखता है, जब उससे पैरामीटर की वैल्यू के लिए कहा जाता है. इसमें Markdown का इस्तेमाल किया जा सकता है. |
example string (ज़रूरी नहीं) |
पैरामीटर के लिए वैल्यू का उदाहरण. |
default string (ज़रूरी नहीं) |
अगर उपयोगकर्ता पैरामीटर की वैल्यू को खाली छोड़ देता है, तो पैरामीटर के लिए डिफ़ॉल्ट वैल्यू. |
validationRegex string (ज़रूरी नहीं) |
पैरामीटर की उपयोगकर्ता के कॉन्फ़िगर की गई वैल्यू की पुष्टि करने के लिए रेगुलर एक्सप्रेशन. Google RE2 सिंटैक्स. |
validationErrorMessage string (ज़रूरी नहीं) |
रेगुलर एक्सप्रेशन की पुष्टि न होने पर, गड़बड़ी का मैसेज दिखाया जाता है. |
required boolean (ज़रूरी नहीं) |
इससे यह तय होता है कि उपयोगकर्ता को पैरामीटर की वैल्यू के लिए प्रॉम्प्ट किए जाने पर, वह खाली स्ट्रिंग सबमिट कर सकता है या नहीं. डिफ़ॉल्ट रूप से, यह true पर सेट होती है.
|
immutable boolean (ज़रूरी नहीं) |
इससे यह तय होता है कि इंस्टॉलेशन के बाद, उपयोगकर्ता पैरामीटर की वैल्यू बदल सकता है या नहीं. जैसे, अगर वह एक्सटेंशन को फिर से कॉन्फ़िगर करता है. डिफ़ॉल्ट रूप से, यह ध्यान दें: अगर आपने अपने एक्सटेंशन के डिप्लॉय किए गए फ़ंक्शन के लिए "location" पैरामीटर तय किया है, तो इस फ़ील्ड को |
type string (ज़रूरी नहीं) |
पैरामीटर का टाइप. खास पैरामीटर टाइप के लिए, अतिरिक्त ज़रूरी शर्तें हो सकती हैं या यूज़र इंटरफ़ेस (यूआई) अलग तरह से दिखाया जा सकता है. यहां दिए गए सेक्शन देखें. |
चुने जा सकने वाले और एक से ज़्यादा आइटम चुने जा सकने वाले पैरामीटर
चुने जा सकने वाले और एक से ज़्यादा विकल्प चुनने की सुविधा वाले पैरामीटर, उपयोगकर्ताओं को पहले से तय किए गए विकल्पों की सूची में से चुनने के लिए कहते हैं.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
Do you want to enable the option?
type: select
options:
- label: Yes
value: true
- label: No
value: false
- param: ANOTHER_PARAM_ID
label: Short description of the parameter
description: >-
Which options do you want to enable?
type: multiSelect
options:
- value: red
- value: green
- value: blue
एक से ज़्यादा विकल्प वाले पैरामीटर फ़ील्ड | |||||||
---|---|---|---|---|---|---|---|
type string |
इससे पता चलता है कि पैरामीटर की वैल्यू एक ( |
||||||
options विकल्पों की सूची (ज़रूरी है) |
ऐसे विकल्प जिनमें से उपयोगकर्ता चुन सकता है
|
चुने जा सकने वाले रिसॉर्स पैरामीटर
चुने जा सकने वाले संसाधन पैरामीटर, उपयोगकर्ताओं को उनके प्रोजेक्ट से कोई संसाधन (डेटाबेस इंस्टेंस, स्टोरेज बकेट वगैरह) चुनने के लिए कहते हैं.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
Which resource do you want to use?
type: selectresource
resourceType: product.googleapis.com/ResourceType
संसाधन पैरामीटर फ़ील्ड | |
---|---|
type string |
इससे पता चलता है कि पैरामीटर, प्रोजेक्ट के किसी संसाधन को दिखाता है |
resourceType string (ज़रूरी है) |
उपयोगकर्ता को चुनने के लिए कहा जाने वाला संसाधन. मान्य मान:
हालांकि, फ़िलहाल सिर्फ़ Cloud Storage बकेट में चुनने के लिए यूज़र इंटरफ़ेस (यूआई) उपलब्ध है. अन्य संसाधन टाइप को फ़्री-फ़ॉर्म टेक्स्ट इनपुट फ़ील्ड के तौर पर दिखाया जाता है. |
सीक्रेट पैरामीटर
उपयोगकर्ता से मिली सीक्रेट वैल्यू (जैसे कि एपीआई कुंजियां) को अलग तरीके से हैंडल किया जाता है:
- सीक्रेट वैल्यू को Cloud Secret Manager का इस्तेमाल करके सेव किया जाता है. इन वैल्यू को सिर्फ़ अनुमति वाले क्लाइंट (जैसे कि एक्सटेंशन का इंस्टॉल किया गया इंस्टेंस) ऐक्सेस कर सकते हैं.
- जब उपयोगकर्ताओं से ये वैल्यू देने के लिए कहा जाता है, तो उनका इनपुट नहीं दिखता.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
सीक्रेट पैरामीटर फ़ील्ड | |
---|---|
type string |
इससे पता चलता है कि पैरामीटर एक सीक्रेट वैल्यू है |
Cloud Functions के संसाधन
इन फ़ील्ड से, एक्सटेंशन में शामिल Cloud Functions के बारे में पता चलता है. पहली जनरेशन और दूसरी जनरेशन के फ़ंक्शन के बीच, संसाधन के एलान का सिंटैक्स थोड़ा अलग दिखता है. ये दोनों फ़ंक्शन, एक्सटेंशन में एक साथ मौजूद हो सकते हैं.
पहली जनरेशन के Cloud Functions
resources:
- name: functionName
type: firebaseextensions.v1beta.function
description: >-
Description of what the function does. (One or two
sentences.)
properties:
runtime: runtime-version
eventTrigger:
eventType: google.product.event
resource: projects/_/resource/specifier
संसाधन फ़ील्ड | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name string (ज़रूरी है) |
एक्सपोर्ट किए गए फ़ंक्शन का ऐसा नाम जो उपयोगकर्ता को आसानी से समझ में आए. अगर आपने डिप्लॉय किए गए फ़ंक्शन का फ़ाइनल नाम इस फ़ॉर्मैट में होगा:
|
||||||||||||||||
type string (ज़रूरी है) |
पहली जनरेशन के फ़ंक्शन रिसॉर्स के लिए:
firebaseextensions.v1beta.function
|
||||||||||||||||
description string (ज़रूरी है) |
कम शब्दों में यह जानकारी कि एक्सटेंशन के लिए फ़ंक्शन कौनसे टास्क पूरे करता है. |
||||||||||||||||
properties (ज़रूरी है) |
पहली जनरेशन की Cloud Functions प्रॉपर्टी. सबसे ज़रूरी प्रॉपर्टी यहां दी गई हैं. हालांकि, पूरी सूची देखने के लिए Cloud Functions का रेफ़रंस देखें.
|
दूसरी जनरेशन के Cloud Functions
resources:
- name: functionName
type: firebaseextensions.v1beta.v2function
description: >-
Description of what the function does. (One or two
sentences.)
properties:
buildConfig:
runtime: nodejs16
serviceConfig:
availableMemory: 512M
eventTrigger:
eventType: google.firebase.firebasealerts.alerts.v1.published
triggerRegion: global
eventFilters:
- attribute: alerttype
value: crashlytics.newFatalIssue
संसाधन फ़ील्ड | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name string (ज़रूरी है) |
एक्सपोर्ट किए गए फ़ंक्शन का ऐसा नाम जो उपयोगकर्ता को आसानी से समझ में आए. अगर आपने डिप्लॉय किए गए फ़ंक्शन का फ़ाइनल नाम इस फ़ॉर्मैट में होगा:
|
||||||||||||||||||||||||||||
type string (ज़रूरी है) |
दूसरी जनरेशन के फ़ंक्शन रिसॉर्स के लिए:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description string (ज़रूरी है) |
कम शब्दों में यह जानकारी कि एक्सटेंशन के लिए फ़ंक्शन कौनसे टास्क पूरे करता है. |
||||||||||||||||||||||||||||
properties (ज़रूरी है) |
दूसरी जनरेशन की Cloud Functions प्रॉपर्टी. सबसे ज़रूरी प्रॉपर्टी यहां दी गई हैं. हालांकि, पूरी सूची देखने के लिए Cloud Functions का रेफ़रंस देखें.
इसके अलावा, तीन ऑब्जेक्ट-टाइप फ़ील्ड भी होते हैं. इनकी अपनी प्रॉपर्टी होती हैं:
|
लाइफ़साइकल इवेंट
लाइफ़साइकल इवेंट की मदद से, ऐसे फ़ंक्शन तय किए जा सकते हैं जो उपयोगकर्ता के एक्सटेंशन को इंस्टॉल, अपडेट या कॉन्फ़िगर करने पर चलेंगे. अपने एक्सटेंशन के लाइफ़साइकल इवेंट मैनेज करना लेख पढ़ें.
lifecycleEvents:
onInstall:
function: myTaskFunction
processingMessage: Describes the task being completed
onUpdate:
function: myOtherTaskFunction
processingMessage: Describes the task being completed
onConfigure:
function: myOtherTaskFunction
processingMessage: Describes the task being completed
लाइफ़साइकल इवेंट फ़ील्ड | |||||||
---|---|---|---|---|---|---|---|
onInstall (ज़रूरी नहीं) |
यह एक ऐसा फ़ंक्शन तय करता है जो उपयोगकर्ता के एक्सटेंशन इंस्टॉल करने पर चलता है.
|
||||||
onUpdate (ज़रूरी नहीं) |
यह एक ऐसा फ़ंक्शन तय करता है जो उपयोगकर्ता के एक्सटेंशन अपडेट करने पर चलता है.
|
||||||
onConfigure (ज़रूरी नहीं) |
यह एक फ़ंक्शन तय करता है, जो उपयोगकर्ता के एक्सटेंशन को फिर से कॉन्फ़िगर करने पर चलता है.
|
कस्टम इवेंट (Eventarc)
कस्टम इवेंट ऐसे इवेंट होते हैं जिन्हें आपका एक्सटेंशन ट्रिगर करता है. इससे उपयोगकर्ताओं को अपने लॉजिक को आपके एक्सटेंशन में डालने की अनुमति मिलती है. एक्सटेंशन में उपयोगकर्ता हुक जोड़ना लेख में, Eventarc सेक्शन देखें.
events:
- type: publisher-id.extension-name.version.event-name
description: Description of the event
- type: publisher-id.extension-name.version.another-event-name
description: Description of the other event
कस्टम इवेंट फ़ील्ड | |
---|---|
type string (ज़रूरी है) |
इवेंट का टाइप आइडेंटिफ़ायर. आइडेंटिफ़ायर को डॉट से अलग किए गए तीन से चार फ़ील्ड से बनाएं: पब्लिशर आईडी, एक्सटेंशन का नाम, और इवेंट का नाम फ़ील्ड ज़रूरी हैं; वर्शन फ़ील्ड का इस्तेमाल करने का सुझाव दिया जाता है. पब्लिश किए जाने वाले हर इवेंट टाइप के लिए, खास और जानकारी देने वाला इवेंट का नाम चुनें. |
description string (ज़रूरी है) |
इवेंट के बारे में जानकारी. |