extensions.yaml के लिए रेफ़रंस

आपके एक्सटेंशन की स्पेसिफ़िकेशन फ़ाइल (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
स्ट्रिंग
(ज़रूरी है)

एक्सटेंशन के लिए आइडेंटिफ़ायर.

इसमें सिर्फ़ छोटे अक्षर, संख्याएं, और डैश हो सकते हैं. इसमें 40 से ज़्यादा वर्ण इस्तेमाल नहीं किए जा सकते.

ध्यान दें: इस वैल्यू का इस्तेमाल, एक्सटेंशन के इंस्टेंस आईडी को जनरेट करने के लिए किया जाता है. इसके बाद, इसका इस्तेमाल एक्सटेंशन के सेवा खाते और एक्सटेंशन के हिसाब से रिसॉर्स के नाम जनरेट करने के लिए किया जाता है.

version
स्ट्रिंग
(ज़रूरी है)

एक्सटेंशन का वर्शन.

वर्शन के लिए, semver का इस्तेमाल करना ज़रूरी है. उदाहरण के लिए, 1.2.0.

specVersion
स्ट्रिंग
(ज़रूरी है)

Firebase एक्सटेंशन के वर्शन की खास बात.

मौजूदा वैल्यू: v1beta

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

एक्सटेंशन का लाइसेंस.

आपके एक्सटेंशन के लिए, Apache-2.0 का इस्तेमाल करके लाइसेंस लिया जाना चाहिए.

billingRequired
boolean
(ज़रूरी नहीं)

एक्सटेंशन की सेवाओं के लिए, पैसे चुकाकर लिए जाने वाले Firebase बिलिंग खाते की ज़रूरत है या नहीं.

हमेशा true पर सेट करें.

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

एक्सटेंशन के लिए आसानी से समझ आने वाला डिसप्ले नेम (3 से 5 शब्द).

40 वर्ण की सीमा.

description
string
(ज़रूरी नहीं)
आपके एक्सटेंशन के काम के बारे में कम शब्दों में जानकारी (~1 वाक्य).
icon
स्ट्रिंग
(ज़रूरी नहीं)

extensions.dev और Firebase कंसोल पर, अपने एक्सटेंशन के आइकॉन के तौर पर इस्तेमाल करने के लिए फ़ाइल.

यह फ़ाइल स्क्वेयर PNG होनी चाहिए. इसका रिज़ॉल्यूशन 512x512 से 1024x1024 पिक्सल के बीच होना चाहिए. फ़ाइल को extension.yaml की उसी डायरेक्ट्री में डालें; आपके पास किसी उप-डायरेक्ट्री को तय करने का विकल्प नहीं है.

अपने एक्सटेंशन के लिए आइकॉन डिज़ाइन करते समय, इन दिशा-निर्देशों का ध्यान रखें:

  • बैकग्राउंड और आर्टवर्क के लिए ऐसे रंग चुनें जो आपके ब्रैंड के लिए सही हों.
  • आइकॉन के रंगों को आसान रखें. इसके लिए, सिर्फ़ दो रंगों का इस्तेमाल करें. एक से ज़्यादा रंगों का इस्तेमाल करने पर, आइकॉन काफ़ी भड़कीला दिख सकता है.
  • इसी वजह से, अपने आइकॉन में ग्रेडिएंट का इस्तेमाल न करें. छोटे साइज़ में ग्रेडिएंट को पहचानना मुश्किल होता है. साथ ही, इससे आइकॉन को विज़ुअल तौर पर समझना मुश्किल हो जाता है.
  • ऐसी आसान और यूनीक इमेज का इस्तेमाल करें जो आपके एक्सटेंशन की सुविधाओं के बारे में बताती हों.
  • अगर आपकी कंपनी कई एक्सटेंशन बनाती है, तो आइकॉन के तौर पर अपने लोगो का इस्तेमाल न करें. उपयोगकर्ताओं को आपके एक्सटेंशन के बीच अंतर करने में मुश्किल होगी.
  • आर्टवर्क को ग्राफ़िक और बोल्ड बनाएं. छोटे साइज़ में ठीक से रेंडर न होने वाले, बारीक या ज़्यादा सजावटी आर्ट का इस्तेमाल न करें.
  • ऐसे शब्द शामिल न करें जिनसे पता चलता हो कि आपका एक्सटेंशन क्या करता है. टेक्स्ट को अक्सर छोटे साइज़ में पढ़ा नहीं जा सकता.
tags
स्ट्रिंग की सूची
(ज़रूरी नहीं)
उपयोगकर्ताओं को आपका एक्सटेंशन खोजने में मदद करने वाले टैग. ये टैग, एक्सटेंशन हब पर कैटगरी से मैप होते हैं: marketing, messaging, payments, search, shipping, social, utilities, ai
sourceUrl
स्ट्रिंग
(ज़रूरी नहीं)
सार्वजनिक यूआरएल, जहां एक्सटेंशन डायरेक्ट्री को ऐक्सेस किया जा सकता है.
releaseNotesUrl
स्ट्रिंग
(ज़रूरी नहीं)
सार्वजनिक यूआरएल, जहां एक्सटेंशन के रिलीज़ नोट ऐक्सेस किए जा सकते हैं.
author
एक लेखक ऑब्जेक्ट
(ज़रूरी नहीं)

एक्सटेंशन का मुख्य लेखक और संपर्क करने के लिए मुख्य व्यक्ति.

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
लेखक के फ़ील्ड
authorName
string
(ज़रूरी है)

लेखक का नाम.

यह कोई व्यक्ति, कंपनी, संगठन वगैरह हो सकता है.

email
string
(ज़रूरी नहीं)
लेखक का ईमेल पता.
url
string
(ज़रूरी नहीं)
सार्वजनिक यूआरएल, जहां लेखक की जानकारी ऐक्सेस की जा सकती है.
contributors
author ऑब्जेक्ट की सूची
(ज़रूरी नहीं)

एक्सटेंशन में योगदान देने वाले अन्य लेखक.

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
लेखक के फ़ील्ड
authorName
string
(ज़रूरी है)

लेखक का नाम.

यह कोई व्यक्ति, कंपनी, संगठन वगैरह हो सकता है.

email
string
(ज़रूरी नहीं)
लेखक का ईमेल पता.
url
string
(ज़रूरी नहीं)
सार्वजनिक यूआरएल, जहां लेखक की जानकारी ऐक्सेस की जा सकती है.

Firebase और Google Cloud के एपीआई

इन फ़ील्ड से उन Firebase और Google API के बारे में पता चलता है जिनका इस्तेमाल एक्सटेंशन करता है. जब उपयोगकर्ता एक्सटेंशन इंस्टॉल करते हैं, तो वे अपने प्रोजेक्ट में इन एपीआई को अपने-आप चालू करने का विकल्प चुन सकते हैं.

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
स्ट्रिंग
(ज़रूरी है)

Google API का नाम

यह नाम, Google Cloud API लाइब्रेरी में मौजूद हर एपीआई के खास जानकारी वाले पेज (उदाहरण) पर दिए गए सेवा के नाम वाले फ़ील्ड से मेल खाना चाहिए

reason
स्ट्रिंग
(ज़रूरी है)
इस बारे में खास जानकारी कि एक्सटेंशन को इस एपीआई का इस्तेमाल क्यों करना है

IAM भूमिकाएं

इन फ़ील्ड से उन Cloud 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
स्ट्रिंग
(ज़रूरी है)

एक्सटेंशन के काम करने के लिए ज़रूरी IAM भूमिका का नाम

यह ऐसी भूमिकाओं में से किसी एक में होनी चाहिए

reason
स्ट्रिंग
(ज़रूरी है)
इस बारे में कम शब्दों में जानकारी दें कि एक्सटेंशन को इस भूमिका से मिले ऐक्सेस की ज़रूरत क्यों है
resource
स्ट्रिंग
(ज़रूरी नहीं)

भूमिका के दायरे को इस संसाधन तक सीमित करें.

अगर यह वैल्यू नहीं दी गई है, तो डिफ़ॉल्ट रूप से projects/${project_id} सेट हो जाती है. भूमिकाओं का दायरा कम करना लेख पढ़ें.

बाहरी सेवाएं

इन फ़ील्ड से पता चलता है कि एक्सटेंशन, Firebase और Google के अलावा किन सेवाओं का इस्तेमाल करता है. आम तौर पर, ये सेवाएं REST API होती हैं. Firebase एक्सटेंशन प्लैटफ़ॉर्म, इन सेवाओं के लिए अपने-आप अनुमति देने या अनुमति देने की प्रोसेस को पूरा करने का कोई तरीका उपलब्ध नहीं कराता.

externalServices:
  - name: Example API
    pricingUri: https://developers.example.com/pricing
  - name: Another Example API
    pricingUri: https://developers.example.com/pricing
बाहरी सेवाओं के लिए फ़ील्ड
name
स्ट्रिंग
(ज़रूरी है)
एक्सटेंशन के काम करने के लिए ज़रूरी बाहरी सेवा का नाम
pricingUri
स्ट्रिंग
(ज़रूरी है)
सेवा की कीमत की जानकारी का यूआरआई

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

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

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
स्ट्रिंग
(ज़रूरी है)
पैरामीटर का नाम. कोड में पैरामीटर की वैल्यू का रेफ़रंस देने के लिए, इस नाम का इस्तेमाल किया जाता है.
label
स्ट्रिंग
(ज़रूरी है)
पैरामीटर के बारे में कम शब्दों में जानकारी. उपयोगकर्ता को तब दिखाया जाता है, जब उनसे पैरामीटर की वैल्यू पूछी जाती है.
description
स्ट्रिंग
(ज़रूरी नहीं)

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

Markdown का इस्तेमाल किया जा सकता है.

example
स्ट्रिंग
(ज़रूरी नहीं)
पैरामीटर के लिए वैल्यू का उदाहरण.
default
स्ट्रिंग
(ज़रूरी नहीं)
अगर उपयोगकर्ता पैरामीटर की वैल्यू को खाली छोड़ देता है, तो पैरामीटर की डिफ़ॉल्ट वैल्यू.
validationRegex
स्ट्रिंग
(ज़रूरी नहीं)
पैरामीटर की उपयोगकर्ता से कॉन्फ़िगर की गई वैल्यू की पुष्टि करने के लिए रेगुलर एक्सप्रेशन. Google RE2 का सिंटैक्स.
validationErrorMessage
स्ट्रिंग
(ज़रूरी नहीं)
रेगुलर एक्सप्रेशन की मदद से पुष्टि न हो पाने पर दिखने वाला गड़बड़ी का मैसेज.
required
boolean
(ज़रूरी नहीं)
इससे यह तय होता है कि पैरामीटर की वैल्यू के लिए कहा जाने पर, उपयोगकर्ता खाली स्ट्रिंग सबमिट कर सकता है या नहीं. डिफ़ॉल्ट रूप से, यह true पर सेट होती है.
immutable
boolean
(ज़रूरी नहीं)

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

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

type
स्ट्रिंग
(ज़रूरी नहीं)
पैरामीटर टाइप. खास पैरामीटर टाइप के लिए, अतिरिक्त ज़रूरी शर्तें या यूज़र इंटरफ़ेस (यूआई) का अलग तरीका हो सकता है. यहां दिए गए सेक्शन देखें.

चुने जा सकने वाले और एक से ज़्यादा विकल्प चुनने वाले पैरामीटर

चुने जा सकने वाले और एक से ज़्यादा विकल्प चुनने वाले पैरामीटर, उपयोगकर्ताओं को पहले से तय विकल्पों की सूची में से चुनने के लिए कहते हैं.

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
स्ट्रिंग

select या multiselect

इससे पता चलता है कि पैरामीटर में एक वैल्यू (select) या पहले से तय विकल्पों के सेट से चुनी गई कई वैल्यू (multiselect) हो सकती हैं

options
विकल्पों की सूची
(ज़रूरी है)

ऐसे विकल्प जिनमें से उपयोगकर्ता कोई विकल्प चुन सकता है

विकल्प फ़ील्ड
value
string
(ज़रूरी है)
उपयोगकर्ता के पास चुनने के लिए उपलब्ध वैल्यू में से एक. यह वह वैल्यू है जो आपको कोड में पैरामीटर वैल्यू पढ़ने पर मिलती है.
label
string
(ज़रूरी नहीं)
चुने जा सकने वाले विकल्प के बारे में कम शब्दों में जानकारी. अगर यह वैल्यू नहीं दी गई है, तो डिफ़ॉल्ट रूप से value का इस्तेमाल किया जाता है.

चुने जा सकने वाले रिसॉर्स पैरामीटर

चुने जा सकने वाले संसाधन पैरामीटर, उपयोगकर्ताओं को अपने प्रोजेक्ट से कोई संसाधन (डेटाबेस इंस्टेंस, स्टोरेज बकेट वगैरह) चुनने के लिए कहते हैं.

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
स्ट्रिंग

selectresource

इससे पता चलता है कि पैरामीटर किसी प्रोजेक्ट के संसाधन को दिखाता है

resourceType
स्ट्रिंग
(ज़रूरी है)

वह संसाधन टाइप जिसे उपयोगकर्ता को चुनने के लिए कहा जाएगा.

मान्य मान:

  • storage.googleapis.com/Bucket
  • firestore.googleapis.com/Database
  • firebasedatabase.googleapis.com/DatabaseInstance

हालांकि, फ़िलहाल सिर्फ़ Cloud Storage बकेट के लिए, चुनने का यूज़र इंटरफ़ेस (यूआई) उपलब्ध है. अन्य तरह के संसाधनों को फ़्री फ़ॉर्म टेक्स्ट इनपुट फ़ील्ड के तौर पर दिखाया जाता है.

सीक्रेट पैरामीटर

उपयोगकर्ता से मिली गोपनीय वैल्यू (जैसे, एपीआई कुंजियां) को अलग तरीके से मैनेज किया जाता है:

  • सीक्रेट वैल्यू को Cloud Secret Manager का इस्तेमाल करके सेव किया जाता है. सिर्फ़ अनुमति वाले क्लाइंट (जैसे, किसी एक्सटेंशन का इंस्टॉल किया गया इंस्टेंस) ही इन वैल्यू को ऐक्सेस कर सकते हैं.
  • जब उपयोगकर्ताओं से ये वैल्यू देने के लिए कहा जाता है, तो उनका इनपुट नहीं दिखाया जाता.
params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What is the secret value?
    type: secret
गुप्त पैरामीटर फ़ील्ड
type
स्ट्रिंग

secret

यह बताता है कि पैरामीटर एक गोपनीय वैल्यू है

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
स्ट्रिंग
(ज़रूरी है)

एक्सपोर्ट किए गए फ़ंक्शन के लिए, उपयोगकर्ता के हिसाब से आसान नाम.

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

डिप्लॉय किए गए फ़ंक्शन का आखिरी नाम, इस फ़ॉर्मैट में होगा: ext-extension-instance-id-name.

type
स्ट्रिंग
(ज़रूरी है)
पहले जनरेशन के फ़ंक्शन संसाधन के लिए: firebaseextensions.v1beta.function
description
स्ट्रिंग
(ज़रूरी है)

इस बारे में कम शब्दों में जानकारी कि एक्सटेंशन के लिए फ़ंक्शन क्या काम करता है.

properties
(ज़रूरी है)

पहले-जीनरेशन की Cloud Functions प्रॉपर्टी. सबसे ज़रूरी प्रॉपर्टी के बारे में यहां बताया गया है. हालांकि, Cloud Functions के रेफ़रंस में पूरी सूची देखी जा सकती है.

प्रॉपर्टी
location
(ज़रूरी नहीं)

वह जगह जहां फ़ंक्शन को डिप्लॉय करना है. डिफ़ॉल्ट रूप से, यह वैल्यू us-central1 पर सेट होती है

entryPoint
(ज़रूरी नहीं)
आपके फ़ंक्शन के सोर्स कोड में मौजूद, एक्सपोर्ट किए गए फ़ंक्शन का नाम, जिसे एक्सटेंशन को खोजना चाहिए. डिफ़ॉल्ट रूप से, ऊपर बताई गई name की वैल्यू पर सेट होती है.
sourceDirectory
(ज़रूरी नहीं)

वह डायरेक्ट्री जिसमें आपका package.json, उसके रूट में मौजूद हो. आपके फ़ंक्शन के सोर्स कोड की फ़ाइल, इस डायरेक्ट्री में होनी चाहिए. डिफ़ॉल्ट रूप से functions पर सेट होती है

ध्यान दें: package.json के main फ़ील्ड में, आपके फ़ंक्शन के सोर्स कोड (जैसे, index.js) की फ़ाइल के बारे में जानकारी दी जाती है.

timeout
(ज़रूरी नहीं)

फ़ंक्शन को लागू करने में लगने वाला ज़्यादा से ज़्यादा समय.

  • डिफ़ॉल्ट: 60s
  • ज़्यादा से ज़्यादा वैल्यू: 540s
availableMemoryMb
(ज़रूरी नहीं)

फ़ंक्शन के लिए एमबी में उपलब्ध मेमोरी.

  • डिफ़ॉल्ट: 256
  • मान्य वैल्यू: 128, 256, 512, 1024, और 2048
runtime
(सुझाया गया)

फ़ंक्शन के लिए रनटाइम एनवायरमेंट.

  • डिफ़ॉल्ट रूप से, Cloud Functions के साथ काम करने वाले Node.js के सबसे नए वर्शन का इस्तेमाल किया जाता है.
  • मान्य वैल्यू: nodejs14, nodejs16, nodejs18
httpsTrigger
या
eventTrigger
या
scheduleTrigger
या
taskQueueTrigger
(इनमें से फ़ंक्शन ट्रिगर का कोई एक टाइप ज़रूरी है)
हर तरह के ट्रिगर के बारे में खास जानकारी पाने के लिए, एक्सटेंशन के लिए 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
स्ट्रिंग
(ज़रूरी है)

एक्सपोर्ट किए गए फ़ंक्शन के लिए, उपयोगकर्ता के हिसाब से आसान नाम.

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

डिप्लॉय किए गए फ़ंक्शन का आखिरी नाम, इस फ़ॉर्मैट में होगा: ext-extension-instance-id-name.

type
स्ट्रिंग
(ज़रूरी है)
दूसरे जनरेशन के फ़ंक्शन के संसाधन के लिए: firebaseextensions.v1beta.v2function
description
स्ट्रिंग
(ज़रूरी है)

इस बारे में कम शब्दों में जानकारी कि एक्सटेंशन के लिए फ़ंक्शन क्या काम करता है.

properties
(ज़रूरी है)

दूसरे-जीन की Cloud Functions प्रॉपर्टी. सबसे ज़रूरी प्रॉपर्टी के बारे में यहां बताया गया है. हालांकि, Cloud Functions के रेफ़रंस में पूरी सूची देखी जा सकती है.

प्रॉपर्टी
location
(ज़रूरी नहीं)

वह जगह जहां फ़ंक्शन को डिप्लॉय करना है. डिफ़ॉल्ट रूप से, यह वैल्यू us-central1 पर सेट होती है

sourceDirectory
(ज़रूरी नहीं)

वह डायरेक्ट्री जिसमें आपका package.json, उसके रूट में मौजूद हो. आपके फ़ंक्शन के सोर्स कोड की फ़ाइल, इस डायरेक्ट्री में होनी चाहिए. डिफ़ॉल्ट रूप से functions पर सेट होती है

ध्यान दें: package.json के main फ़ील्ड में, आपके फ़ंक्शन के सोर्स कोड (जैसे, index.js) की फ़ाइल के बारे में जानकारी दी जाती है.

ऑब्जेक्ट टाइप के तीन फ़ील्ड भी होते हैं, जिनकी अपनी प्रॉपर्टी होती हैं:

buildConfig प्रॉपर्टी
buildConfig.runtime
(सुझाया गया)

फ़ंक्शन के लिए रनटाइम एनवायरमेंट.

  • डिफ़ॉल्ट रूप से, Cloud Functions के साथ काम करने वाले Node.js के सबसे नए वर्शन का इस्तेमाल किया जाता है.
  • मान्य वैल्यू: nodejs14, nodejs16, nodejs18
buildConfig.entryPoint
(ज़रूरी नहीं)
आपके फ़ंक्शन के सोर्स कोड में मौजूद, एक्सपोर्ट किए गए फ़ंक्शन का नाम, जिसे एक्सटेंशन को खोजना चाहिए. डिफ़ॉल्ट रूप से, ऊपर बताई गई name की वैल्यू पर सेट होती है.
serviceConfig प्रॉपर्टी
serviceConfig.timeoutSeconds
(ज़रूरी नहीं)

फ़ंक्शन को लागू करने में लगने वाला ज़्यादा से ज़्यादा समय.

  • डिफ़ॉल्ट: 60
  • ज़्यादा से ज़्यादा वैल्यू: 540
serviceConfig.availableMemory
(ज़रूरी नहीं)
किसी फ़ंक्शन के लिए उपलब्ध मेमोरी. डिफ़ॉल्ट रूप से, यह वैल्यू 256M पर सेट होती है. इन यूनिट का इस्तेमाल किया जा सकता है: k, M, G, Mi, Gi. अगर कोई यूनिट नहीं दी जाती है, तो वैल्यू को बाइट के तौर पर माना जाता है.
eventTrigger प्रॉपर्टी
eventTrigger.eventType
(ज़रूरी है)
जिस इवेंट को सुनना है उसका टाइप. हर प्रॉडक्ट के लिए उपलब्ध इवेंट टाइप के बारे में जानने के लिए, एक्सटेंशन के लिए Cloud Function लिखना देखें.
eventTrigger.eventFilters
(ज़रूरी नहीं)
ऐसे फ़िल्टर जो सुनने के लिए इवेंट को और सीमित करते हैं. उदाहरण के लिए, किसी खास संसाधन पैटर्न से मैच करने वाले इवेंट को ही सुना जा सकता है. हर तरह के इवेंट को फ़िल्टर करने के बारे में जानने के लिए, एक्सटेंशन के लिए Cloud Function लिखना देखें.
eventTrigger.channel
(ज़रूरी नहीं)
ट्रिगर से जुड़े चैनल का नाम, projects/{project}/locations/{location}/channels/{channel} फ़ॉर्मैट में. अगर इस प्रॉपर्टी को शामिल नहीं किया जाता है, तो फ़ंक्शन प्रोजेक्ट के डिफ़ॉल्ट चैनल पर इवेंट सुनेगा.
eventTrigger.triggerRegion
(ज़रूरी नहीं)
ट्रिगर को सिर्फ़ इस इलाके से आने वाले इवेंट मिलेंगे. यह फ़ंक्शन के क्षेत्र जैसा ही हो सकता है, कोई दूसरा क्षेत्र या कई क्षेत्र या ग्लोबल क्षेत्र. अगर यह पैरामीटर नहीं दिया जाता है, तो डिफ़ॉल्ट रूप से, फ़ंक्शन के लिए तय किए गए इलाके का इस्तेमाल किया जाता है.

लाइफ़साइकल इवेंट

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

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
(ज़रूरी नहीं)

यह एक फ़ंक्शन तय करता है, जो उपयोगकर्ता के एक्सटेंशन इंस्टॉल करने पर चलता है.

फ़ंक्शन की खास जानकारी
function
string
(ज़रूरी है)

टास्क की सूची से ट्रिगर किए गए उस फ़ंक्शन का नाम जो इवेंट को मैनेज करेगा.

इस फ़ंक्शन को resources सेक्शन में एलान किया जाना चाहिए. साथ ही, इसमें taskQueue की परिभाषा होनी चाहिए.

processingMessage
string
(ज़रूरी है)
टास्क पूरा होने के दौरान, Firebase कंसोल में दिखने वाला मैसेज.
onUpdate
(ज़रूरी नहीं)

यह एक फ़ंक्शन तय करता है, जो उपयोगकर्ता के एक्सटेंशन को अपडेट करने पर चलता है.

फ़ंक्शन की खास जानकारी
function
string
(ज़रूरी है)

टास्क की सूची से ट्रिगर किए गए उस फ़ंक्शन का नाम जो इवेंट को मैनेज करेगा.

इस फ़ंक्शन को resources सेक्शन में एलान किया जाना चाहिए. साथ ही, इसमें taskQueue की परिभाषा होनी चाहिए.

processingMessage
string
(ज़रूरी है)
टास्क पूरा होने के दौरान, Firebase कंसोल में दिखने वाला मैसेज.
onConfigure
(ज़रूरी नहीं)

इस एट्रिब्यूट से उस फ़ंक्शन के बारे में पता चलता है जो उपयोगकर्ता के एक्सटेंशन को फिर से कॉन्फ़िगर करने पर चलता है.

फ़ंक्शन की खास जानकारी
function
string
(ज़रूरी है)

टास्क की सूची से ट्रिगर किए गए उस फ़ंक्शन का नाम जो इवेंट को मैनेज करेगा.

इस फ़ंक्शन को resources सेक्शन में एलान किया जाना चाहिए. साथ ही, इसमें taskQueue की परिभाषा होनी चाहिए.

processingMessage
string
(ज़रूरी है)
टास्क पूरा होने के दौरान, Firebase कंसोल में दिखने वाला मैसेज.

कस्टम इवेंट (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
स्ट्रिंग
(ज़रूरी है)
इवेंट का टाइप आइडेंटिफ़ायर. बिंदु से अलग किए गए तीन से चार फ़ील्ड से आइडेंटिफ़ायर बनाएं: पब्लिशर आईडी, एक्सटेंशन का नाम, और इवेंट का नाम वाले फ़ील्ड ज़रूरी हैं. वर्शन फ़ील्ड का सुझाव दिया जाता है. पब्लिश किए जाने वाले हर इवेंट टाइप के लिए, यूनीक और जानकारी देने वाला इवेंट नाम चुनें.
description
स्ट्रिंग
(ज़रूरी है)
इवेंट के बारे में जानकारी.