extension.yaml-এর জন্য রেফারেন্স

আপনার এক্সটেনশনের স্পেসিফিকেশন ফাইলে (extension.yaml) আপনার এক্সটেনশনের মেটাডেটা থাকে, এক্সটেনশন দ্বারা তৈরি রিসোর্স এবং এক্সটেনশনের জন্য প্রয়োজনীয় API এবং অ্যাক্সেস ঘোষণা করে এবং এক্সটেনশন দ্বারা প্রদত্ত যেকোনও ব্যবহারকারী-কনফিগার করা প্যারামিটার সংজ্ঞায়িত করে।

এই পৃষ্ঠার সারণীতে 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
স্ট্রিং
(প্রয়োজনীয়)

এক্সটেনশনের জন্য শনাক্তকারী।

শুধু ছোট হাতের অক্ষর, সংখ্যা ও ড্যাশ থাকতে পারে; ৪০টি অক্ষরের সীমা।

মনে রাখবেন: এই ভ্যালু এক্সটেনশনের ইনস্ট্যান্স আইডি তৈরি করতে ব্যবহার করা হয় (যা পরে এক্সটেনশনের পরিষেবা অ্যাকাউন্ট এবং এক্সটেনশন-নির্দিষ্ট রিসোর্সের নাম তৈরি করতে ব্যবহার করা হয়)।

version
স্ট্রিং
(প্রয়োজনীয়)

এক্সটেনশনের ভার্সন।

সেমভার ভার্সনিং (যেমন, ১.২.০) অনুসরণ করতে হবে।

specVersion
স্ট্রিং
(প্রয়োজনীয়)

Firebase এক্সটেনশন স্পেসিফিকেশনের ভার্সন।

বর্তমান মান: v1beta

license
স্ট্রিং
(ঐচ্ছিক)

এক্সটেনশনের জন্য লাইসেন্স।

আপনার এক্সটেনশন অবশ্যই Apache-2.0 ব্যবহার করে লাইসেন্সপ্রাপ্ত হতে হবে।

billingRequired
বুলিয়ান
(ঐচ্ছিক)

এক্সটেনশনের মাধ্যমে ব্যবহার করা পরিষেবার জন্য পেড-টিয়ার Firebase বিলিং অ্যাকাউন্ট প্রয়োজন কিনা।

সবসময় true হিসেবে সেট করা আছে।

displayName
স্ট্রিং
(ঐচ্ছিক)

এক্সটেনশনের জন্য পছন্দসই ডিসপ্লে নাম (৩-৫টি শব্দ)।

৪০টি অক্ষরের সীমা।

description
স্ট্রিং
(ঐচ্ছিক)
আপনার এক্সটেনশন যে টাস্কটি করে তার সংক্ষিপ্ত বিবরণ (~১টি বাক্য)।
icon
স্ট্রিং
(ঐচ্ছিক)

extensions.dev এবং Firebase কনসোলে আপনার এক্সটেনশনের আইকন হিসেবে ব্যবহার করার জন্য ফাইল।

এই ফাইলটি অবশ্যই ৫১২x৫১২ এবং ১০২৪x১০২৪ পিক্সেলের মধ্যে একটি বর্গাকার PNG হতে হবে। extension.yaml-এর মতো একই ডিরেক্টরিতে ফাইলটি রাখুন; আপনি সাবডিরেক্টরি নির্দিষ্ট করতে পারবেন না।

আপনার এক্সটেনশনের জন্য আইকন ডিজাইন করার সময় নিম্নলিখিত নির্দেশিকা মনে রাখবেন:

  • আপনার ব্র্যান্ডের জন্য উপযুক্ত ব্যাকগ্রাউন্ড এবং আর্টওয়ার্কের রঙ বেছে নিন।
  • আইকনের রঙ সহজ রাখুন, শুধুমাত্র ২টি রঙ ব্যবহার করুন। একাধিক রঙ আপনার আইকনকে দৃষ্টিনন্দন করে তুলতে পারে।
  • একই কারণে, আপনার আইকনে গ্রেডিয়েন্ট ব্যবহার করবেন না। ছোট সাইজে গ্রেডিয়েন্ট বোঝা কঠিন এবং এটি আইকনকে দেখতে জটিল করে তোলে।
  • আপনার এক্সটেনশনের কার্যকারিতা বোঝাতে সহজ, অনন্য ছবি ব্যবহার করুন।
  • আপনার কোম্পানি একাধিক এক্সটেনশন তৈরি করলে, আইকন হিসেবে আপনার লোগো ব্যবহার করবেন না। ব্যবহারকারীদের আপনার এক্সটেনশনগুলির মধ্যে পার্থক্য করতে অসুবিধা হবে।
  • আর্টওয়ার্কটি গ্রাফিক ও বোল্ড করো। খুব সূক্ষ্ম বা জটিল আর্ট ব্যবহার করবেন না, কারণ ছোট সাইজে তা ভালভাবে রেন্ডার হবে না।
  • আপনার এক্সটেনশন কী করে তা ব্যাখ্যা করে এমন শব্দ অন্তর্ভুক্ত করবেন না। ছোট সাইজে টেক্সট প্রায়ই পড়া যায় না।
tags
স্ট্রিংয়ের তালিকা
(ঐচ্ছিক)
ব্যবহারকারীদের আপনার এক্সটেনশন খুঁজে পেতে সাহায্য করার জন্য ট্যাগ। নিম্নলিখিত ট্যাগগুলি Extensions Hub-এর বিভাগগুলির সাথে ম্যাপ করে: marketing, messaging, payments, search, shipping, social, utilities, ai
sourceUrl
স্ট্রিং
(ঐচ্ছিক)
সর্বজনীন URL যেখানে এক্সটেনশন ডিরেক্টরি অ্যাক্সেস করা যেতে পারে।
releaseNotesUrl
স্ট্রিং
(ঐচ্ছিক)
পাবলিক URL যেখানে এক্সটেনশনের রিলিজ নোট অ্যাক্সেস করা যাবে।
author
একজন লেখকের অবজেক্ট
(ঐচ্ছিক)

এক্সটেনশনের জন্য প্রাথমিক লেখক এবং যোগাযোগের পয়েন্ট।

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
লেখকের ফিল্ড
authorName
স্ট্রিং
(প্রয়োজনীয়)

লেখকের নাম।

কোনও ব্যক্তি, কোম্পানি, সংস্থা ইত্যাদি হতে পারে।

email
স্ট্রিং
(ঐচ্ছিক)
লেখকের ইমেল আইডি।
url
স্ট্রিং
(ঐচ্ছিক)
সর্বজনীন URL যেখানে লেখকের সম্পর্কে তথ্য অ্যাক্সেস করা যেতে পারে।
contributors
লেখক অবজেক্টের তালিকা
(ঐচ্ছিক)

এক্সটেনশনের জন্য অতিরিক্ত কন্ট্রিবিউটর লেখক।

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
লেখকের ফিল্ড
authorName
স্ট্রিং
(প্রয়োজনীয়)

লেখকের নাম।

কোনও ব্যক্তি, কোম্পানি, সংস্থা ইত্যাদি হতে পারে।

email
স্ট্রিং
(ঐচ্ছিক)
লেখকের ইমেল আইডি।
url
স্ট্রিং
(ঐচ্ছিক)
সর্বজনীন URL যেখানে লেখকের সম্পর্কে তথ্য অ্যাক্সেস করা যেতে পারে।

Firebase ও Google Cloud API

এইসব ফিল্ড এক্সটেনশনের ব্যবহার করা Firebase ও Google API নির্দিষ্ট করে। ব্যবহারকারীরা এক্সটেনশন ইনস্টল করার সময়, তাদের প্রোজেক্টে অটোমেটিক এইসব 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
API ফিল্ড
apiName
স্ট্রিং
(প্রয়োজনীয়)

Google API-এর নাম

Google Cloud API লাইব্রেরি-তে প্রতিটি API-এর ওভারভিউ পৃষ্ঠায় (উদাহরণ) তালিকাভুক্ত পরিষেবার নাম ফিল্ডের সাথে মিল থাকতে হবে

reason
স্ট্রিং
(প্রয়োজনীয়)
এক্সটেনশনকে কেন এই API ব্যবহার করতে হবে তার সংক্ষিপ্ত বিবরণ

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 Extensions প্ল্যাটফর্ম এইসব পরিষেবার জন্য অটোমেটিক চালু বা পারফর্ম করার কোনও উপায় প্রদান করে না।

externalServices:
  - name: Example API
    pricingUri: https://developers.example.com/pricing
  - name: Another Example API
    pricingUri: https://developers.example.com/pricing
এক্সটার্নাল পরিষেবা ফিল্ড
name
স্ট্রিং
(প্রয়োজনীয়)
এক্সটেনশন কাজ করার জন্য প্রয়োজনীয় এক্সটার্নাল পরিষেবার নাম
pricingUri
স্ট্রিং
(প্রয়োজনীয়)
পরিষেবার জন্য দাম সংক্রান্ত তথ্যের URI

ব্যবহারকারী-কনফিগারযোগ্য প্যারামিটার

এইসব ফিল্ড সেইসব প্যারামিটার নির্ধারণ করে যা এক্সটেনশন ব্যবহারকারীদের কনফিগার করার জন্য উপলভ্য করে।

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
স্ট্রিং
(ঐচ্ছিক)

প্যারামিটারের বিস্তারিত বিবরণ। ব্যবহারকারীকে প্যারামিটারের ভ্যালু প্রম্পট করা হলে এটি দেখানো হয়।

মার্কডাউন কাজ করে।

example
স্ট্রিং
(ঐচ্ছিক)
প্যারামিটারের জন্য উদাহরণ হিসেবে দেওয়া ভ্যালু।
default
স্ট্রিং
(ঐচ্ছিক)
ব্যবহারকারী প্যারামিটারের ভ্যালু ফাঁকা রাখলে, প্যারামিটারের ডিফল্ট ভ্যালু।
validationRegex
স্ট্রিং
(ঐচ্ছিক)
প্যারামিটারের ব্যবহারকারী-কনফিগার করা ভ্যালু যাচাই করার জন্য রেগুলার এক্সপ্রেশন। Google RE2 সিনট্যাক্স।
validationErrorMessage
স্ট্রিং
(ঐচ্ছিক)
Regex যাচাইকরণ ব্যর্থ হলে দেখানোর জন্য ত্রুটি মেসেজ।
required
বুলিয়ান
(ঐচ্ছিক)
প্যারামিটারের ভ্যালুর জন্য প্রম্পট করা হলে, ব্যবহারকারী খালি স্ট্রিং জমা দিতে পারবেন কিনা তা নির্ধারণ করে। ডিফল্ট হিসেবে true সেট করা থাকে।
immutable
বুলিয়ান
(ঐচ্ছিক)

ইনস্টল করার পরে ব্যবহারকারী প্যারামিটারের ভ্যালু পরিবর্তন করতে পারবেন কিনা তা নির্ধারণ করে (যেমন, তারা এক্সটেনশনটি আবার কনফিগার করলে)। ডিফল্ট হিসেবে false সেট করা থাকে।

মনে রাখবেন: আপনার এক্সটেনশনের ডিপ্লয় করা ফাংশনের জন্য "লোকেশন" প্যারামিটার নির্ধারণ করলে, এই ফিল্ডটি true হিসেবে সেট করুন।

type
স্ট্রিং
(ঐচ্ছিক)
প্যারামিটারের ধরন। বিশেষ প্যারামিটারের ধরনের ক্ষেত্রে অতিরিক্ত প্রয়োজনীয়তা বা অন্য ধরনের UI প্রেজেন্টেশন থাকতে পারে। নিচের বিভাগগুলি দেখুন।

বেছে নেওয়া যায় এবং একাধিক বেছে নেওয়া যায় এমন প্যারামিটার

বেছে নেওয়া যায় এবং একাধিক বেছে নেওয়া যায় এমন প্যারামিটার ব্যবহারকারীদের আগে থেকে নির্ধারিত বিকল্পের তালিকা থেকে বেছে নিতে প্রম্পট করে।

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 বাকেটে একটি সিলেকশন UI আছে (অন্যান্য রিসোর্সের ধরন ফ্রি-ফর্ম টেক্সট ইনপুট ফিল্ড হিসেবে দেখানো হয়)।

গোপন প্যারামিটার

ব্যবহারকারীর প্রদান করা গোপন ভ্যালু (যেমন API কী) আলাদাভাবে ম্যানেজ করা হয়:

  • 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 ঘোষণা করে। ফার্স্ট-জেনারেশন ও সেকেন্ড-জেনারেশন ফাংশনের মধ্যে রিসোর্স ঘোষণা করার সিনট্যাক্স একটু আলাদা দেখায়, যা একটি এক্সটেনশনে সহাবস্থান করতে পারে।

ফার্স্ট জেনারেশন 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
(সাজেস্ট করা হয়েছে)

ফাংশনের জন্য রানটাইম এনভায়রনমেন্ট।

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
(সাজেস্ট করা হয়েছে)

ফাংশনের জন্য রানটাইম এনভায়রনমেন্ট।

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
স্ট্রিং
(প্রয়োজনীয়)

টাস্ক কিউ-ট্রিগার করা ফাংশনের নাম যা ইভেন্টটি ম্যানেজ করবে।

এই ফাংশনটি অবশ্যই resources বিভাগে ঘোষণা করতে হবে এবং এতে taskQueue সংজ্ঞায়িত থাকতে হবে।

processingMessage
স্ট্রিং
(প্রয়োজনীয়)
টাস্ক প্রসেস চলাকালীন Firebase কনসোলে দেখানোর জন্য মেসেজ।
onUpdate
(ঐচ্ছিক)

ব্যবহারকারী এক্সটেনশন আপডেট করলে রান করে এমন ফাংশন নির্দিষ্ট করে।

ফাংশন স্পেসিফিকেশন
function
স্ট্রিং
(প্রয়োজনীয়)

টাস্ক কিউ-ট্রিগার করা ফাংশনের নাম যা ইভেন্টটি ম্যানেজ করবে।

এই ফাংশনটি অবশ্যই resources বিভাগে ঘোষণা করতে হবে এবং এতে taskQueue সংজ্ঞায়িত থাকতে হবে।

processingMessage
স্ট্রিং
(প্রয়োজনীয়)
টাস্ক প্রসেস চলাকালীন Firebase কনসোলে দেখানোর জন্য মেসেজ।
onConfigure
(ঐচ্ছিক)

ব্যবহারকারী এক্সটেনশন আবার কনফিগার করলে, রান করে এমন একটি ফাংশন নির্দিষ্ট করে।

ফাংশন স্পেসিফিকেশন
function
স্ট্রিং
(প্রয়োজনীয়)

টাস্ক কিউ-ট্রিগার করা ফাংশনের নাম যা ইভেন্টটি ম্যানেজ করবে।

এই ফাংশনটি অবশ্যই resources বিভাগে ঘোষণা করতে হবে এবং এতে taskQueue সংজ্ঞায়িত থাকতে হবে।

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
স্ট্রিং
(প্রয়োজনীয়)
ইভেন্টের বর্ণনা।