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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह फ़ाइल, 512x512 और 1024x1024 पिक्सल के बीच की स्क्वेयर PNG फ़ॉर्मैट में होनी चाहिए. फ़ाइल को उसी डायरेक्ट्री में रखें जिसमें 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
स्ट्रिंग
(ज़रूरी है)

लेखक का नाम.

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

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

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

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

लेखक का नाम.

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

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

Firebase और Google Cloud API

इन फ़ील्ड से एक्सटेंशन के ज़रिए इस्तेमाल होने वाले 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 Library में, हर एपीआई की खास जानकारी देने वाले पेज (उदाहरण) पर दी गई सेवा का नाम फ़ील्ड के मुताबिक होना चाहिए

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

आईएएम की भूमिकाएं

इन फ़ील्ड से, एक्सटेंशन के लिए ज़रूरी क्लाउड आईएएम की भूमिकाओं के बारे में पता चलता है. एक्सटेंशन के लिए प्रावधान किए गए सेवा खाते को ये भूमिकाएं दी जाती हैं.

इस्तेमाल की जा सकने वाली भूमिकाओं में से सिर्फ़ एक भूमिका तय की जा सकती है.

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

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

ये फ़ील्ड, एक्सटेंशन में शामिल Cloud Functions का एलान करते हैं. 1st-gen और 2nd-gen फ़ंक्शन के बीच रिसॉर्स के एलान का सिंटैक्स थोड़ा अलग दिखता है, जो किसी एक्सटेंशन में एक साथ रह सकता है.

1st-gen Cloud के फ़ंक्शन

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
स्ट्रिंग
(ज़रूरी है)
1st-gen फ़ंक्शन के रिसॉर्स के लिए: firebaseextensions.v1beta.function
description
स्ट्रिंग
(ज़रूरी है)

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

properties
(ज़रूरी है)

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

प्रॉपर्टी
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 लिखना देखें.

2nd-gen क्लाउड फ़ंक्शन

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
स्ट्रिंग
(ज़रूरी है)
2nd-gen फ़ंक्शन वाले संसाधन के लिए: firebaseextensions.v1beta.v2function
description
स्ट्रिंग
(ज़रूरी है)

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

properties
(ज़रूरी है)

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

प्रॉपर्टी
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 फ़ंक्शन लिखना लेख पढ़ें.
eventTrigger.eventFilters
(ज़रूरी नहीं)
ऐसे फ़िल्टर जो सुनने के लिए इवेंट को और सीमित करते हैं. उदाहरण के लिए, सिर्फ़ किसी खास रिसॉर्स पैटर्न से मेल खाने वाले इवेंट सुने जा सकते हैं. हर तरह के इवेंट को फ़िल्टर करने के बारे में जानने के लिए, एक्सटेंशन के लिए Cloud फ़ंक्शन लिखना लेख पढ़ें.
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
स्ट्रिंग
(ज़रूरी है)

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

इस फ़ंक्शन का एलान resources सेक्शन में किया जाना चाहिए. साथ ही, इसमें task चेतावनी तय होनी चाहिए.

processingMessage
स्ट्रिंग
(ज़रूरी है)
टास्क के चलते समय, Firebase कंसोल में दिखाने के लिए मैसेज.
onUpdate
(ज़रूरी नहीं)

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

फ़ंक्शन की जानकारी
function
स्ट्रिंग
(ज़रूरी है)

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

इस फ़ंक्शन का एलान resources सेक्शन में किया जाना चाहिए. साथ ही, इसमें task चेतावनी तय होनी चाहिए.

processingMessage
स्ट्रिंग
(ज़रूरी है)
टास्क के चलते समय, Firebase कंसोल में दिखाने के लिए मैसेज.
onConfigure
(ज़रूरी नहीं)

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

फ़ंक्शन की जानकारी
function
स्ट्रिंग
(ज़रूरी है)

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

इस फ़ंक्शन का एलान resources सेक्शन में किया जाना चाहिए. साथ ही, इसमें task चेतावनी तय होनी चाहिए.

processingMessage
स्ट्रिंग
(ज़रूरी है)
टास्क के चलते समय, 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
स्ट्रिंग
(ज़रूरी है)
इवेंट के बारे में जानकारी.