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

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

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

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

version
string
(ज़रूरी है)

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

यह ज़रूरी है कि वर्शन का नाम, semver वर्शनिंग के मुताबिक हो. उदाहरण के लिए, 1.2.0.

specVersion
string
(ज़रूरी है)

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

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

license
string
(ज़रूरी नहीं)

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

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

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

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

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

displayName
string
(ज़रूरी नहीं)

एक्सटेंशन के लिए, पढ़ने में आसान डिसप्ले नेम (तीन से पांच शब्द).

40 वर्ण सीमा.

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

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

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

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

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

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

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

लेखक का नाम.

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

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

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

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 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 भूमिकाएं

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

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

यह इस्तेमाल की जा सकने वाली भूमिकाओं में से एक होनी चाहिए

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

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

अगर इसे शामिल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से 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
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
(ज़रूरी नहीं)

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

मार्कडाउन का इस्तेमाल किया जा सकता है.

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

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

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

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

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

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

मान्य मान:

  • 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 फ़ंक्शन के संसाधन

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

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

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

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

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

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

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
(सुझाया गया)

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

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

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

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

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

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

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

properties
(ज़रूरी है)

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

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

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

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

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

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

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

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

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

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

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

  • डिफ़ॉल्ट: 60
  • ज़्यादा से ज़्यादा वैल्यू: 540
serviceConfig.availableMemory
(ज़रूरी नहीं)
किसी फ़ंक्शन के लिए उपलब्ध मेमोरी. डिफ़ॉल्ट रूप से, यह कार्रवाई 256M पर सेट रहती है. k, M, G, Mi, Gi जैसी यूनिट इस्तेमाल की जा सकती हैं. अगर कोई यूनिट नहीं दी जाती है, तो वैल्यू को बाइट के तौर पर माना जाता है.
eventTrigger प्रॉपर्टी
eventTrigger.eventType
(ज़रूरी है)
इवेंट का टाइप, ताकि उसे सुना जा सके. हर प्रॉडक्ट के लिए उपलब्ध इवेंट टाइप के बारे में जानने के लिए, एक्सटेंशन के लिए Cloud Functions लिखना लेख पढ़ें.
eventTrigger.eventFilters
(ज़रूरी नहीं)
ऐसे फ़िल्टर जो इवेंट को सुनने की सीमा को और सीमित करते हैं. उदाहरण के लिए, सिर्फ़ किसी खास संसाधन पैटर्न से मैच होने वाले इवेंट सुने जा सकते हैं. हर तरह के इवेंट को फ़िल्टर करने के बारे में जानकारी पाने के लिए, एक्सटेंशन के लिए Cloud Functions लिखना लेख पढ़ें.
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
string
(ज़रूरी है)
इवेंट का टाइप आइडेंटिफ़ायर. आइडेंटिफ़ायर को तीन से चार डॉट-डिलिमिटेड फ़ील्ड से बनाएं: पब्लिशर आईडी, एक्सटेंशन का नाम, और इवेंट के नाम वाले फ़ील्ड ज़रूरी हैं. वर्शन फ़ील्ड का इस्तेमाल करने का सुझाव दिया जाता है. पब्लिश किए जाने वाले हर इवेंट टाइप के लिए, एक यूनीक और जानकारी देने वाला इवेंट का नाम चुनें.
description
string
(ज़रूरी है)
इवेंट के बारे में जानकारी.