আপনার এক্সটেনশনে প্যারামিটার সেট আপ করুন এবং ব্যবহার করুন

প্যারামিটার হল এমন একটি প্রক্রিয়া যার মাধ্যমে একজন ব্যবহারকারী একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করে। প্যারামিটারগুলি একটি এক্সটেনশনের জন্য পরিবেশের ভেরিয়েবলের মতো। পরামিতিগুলির মানগুলি হয় স্বয়ংক্রিয়ভাবে জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইন্সটলেশনের সময় ব্যবহারকারী দ্বারা নির্দিষ্ট) হতে পারে।

এই প্যারামিটারগুলি আপনার এক্সটেনশনের ফাংশন সোর্স কোড, আপনার extension.yaml ফাইল এবং আপনার POSTINSTALL.md ফাইলে উল্লেখ করার জন্য উপলব্ধ। PARAMETER_NAME নামক একটি প্যারামিটারকে কীভাবে উল্লেখ করা যায় তার জন্য এখানে সিনট্যাক্স রয়েছে:

  • আপনার ফাংশন সোর্স কোডের মধ্যে, params মডিউল ব্যবহার করুন (উদাহরণস্বরূপ, params.defineInt(" PARAMETER_NAME ") ) বা process.env. PARAMETER_NAME

  • extension.yaml এবং POSTINSTALL.md মধ্যে ${param: PARAMETER_NAME } ব্যবহার করুন।

    ইনস্টলেশনের পরে, Firebase কনসোল POSTINSTALL.md ফাইলের বিষয়বস্তু প্রদর্শন করে এবং ইনস্টল করা উদাহরণের জন্য প্রকৃত মান সহ যেকোনো পরামিতি রেফারেন্স পূরণ করে।

স্বয়ংক্রিয় জনবহুল পরামিতি

একটি এক্সটেনশনের প্রতিটি ইনস্টল করা দৃষ্টান্তের স্বয়ংক্রিয়ভাবে Firebase দ্বারা প্রদত্ত বেশ কয়েকটি ডিফল্ট স্বয়ংক্রিয়-পপুলেট প্যারামিটারে অ্যাক্সেস থাকে (নীচের টেবিলটি পড়ুন)। এই প্যারামিটার মানগুলি হয় Firebase প্রকল্পের জন্য ডিফল্ট মান (যেমন ডিফল্ট স্টোরেজ বাকেট) অথবা এগুলি এক্সটেনশন-নির্দিষ্ট (যেমন এক্সটেনশনের ইনস্ট্যান্স আইডি)।

সমস্ত স্বয়ংক্রিয়-জনবহুল পরামিতি মান অপরিবর্তনীয়। এগুলি প্রকল্প তৈরি বা এক্সটেনশন ইনস্টলেশনের সময় সেট করা হয়।

যদিও Firebase এক্সটেনশনের জন্য এই পরামিতি মানগুলিকে স্বয়ংক্রিয়ভাবে পপুলেট করে, Firebase ইনস্টলেশনের সময় ব্যবহারকারীর জন্য সংশ্লিষ্ট পণ্যগুলিকে স্বয়ংক্রিয়ভাবে প্রদান করে না । এক্সটেনশন ইনস্টল করা ব্যবহারকারীকে অবশ্যই ইনস্টলেশনের আগে তাদের প্রকল্পে সংশ্লিষ্ট এবং প্রযোজ্য পণ্য(গুলি) সক্ষম করতে হবে। উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনটি Cloud Firestore সাথে জড়িত থাকে তবে ব্যবহারকারীকে অবশ্যই তাদের প্রকল্পে Cloud Firestore সেট আপ করতে হবে। আমরা PREINSTALL.md ফাইলে এই প্রয়োজনীয়তাগুলি সম্পর্কে আপনার ব্যবহারকারীদের অবহিত করার পরামর্শ দিই।

স্বয়ংক্রিয় জনবহুল পরামিতির জন্য রেফারেন্স বর্ণনা পরামিতি মান (ফায়ারবেস দ্বারা সরবরাহিত)
Firebase প্রকল্প থেকে ডিফল্ট মান সহ পরামিতি
PROJECT_ID Firebase প্রকল্পের জন্য অনন্য শনাক্তকারী যেখানে এক্সটেনশন ইনস্টল করা আছে

সাধারণ বিন্যাস:
project-id

উদাহরণ মান:
project-123

DATABASE_URL Firebase প্রকল্পের ডিফল্ট Realtime Database ইনস্ট্যান্স URL

সাধারণ বিন্যাস:
https:// project-id -default-rtdb.firebaseio.com
(মার্কিন উদাহরণ)
বা
https:// project-id -default-rtdb. region-code .firebasedatabase.app
(অ-মার্কিন উদাহরণ)

উদাহরণ মান:
https://project-123-default-rtdb.firebaseio.com

DATABASE_INSTANCE

Firebase প্রকল্পের ডিফল্ট Realtime Database উদাহরণের নাম

সাধারণত, এই মানটি প্রজেক্ট আইডির মতই হয়, অথবা -default-rtdb এ শেষ হয়।

সাধারণ বিন্যাস:
project-id

উদাহরণ মান:
project-123

STORAGE_BUCKET Firebase প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বাকেটের নাম

সাধারণ বিন্যাস:
PROJECT_ID .firebasestorage.app

উদাহরণ মান:
project-123.firebasestorage.app

এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার
EXT_INSTANCE_ID

ইনস্টল করা এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী

এই মানটি extension.yaml ফাইলে নির্দিষ্ট করা name ক্ষেত্র থেকে তৈরি করা হয়েছে।

1ম ইনস্টল করা উদাহরণের জন্য সাধারণ বিন্যাস (Firebase দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত করা যাবে না ):
name-from-extension.yaml

উদাহরণ মান:
my-awesome-extension


২য়-ইন্সটল করা দৃষ্টান্তের জন্য সাধারণীকৃত বিন্যাস এবং তার উপরে (Firebase দ্বারা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়েছে; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত হতে পারে ):
name-from-extension.yaml - 4-digit-alphanumeric-hash

উদাহরণ মান:
my-awesome-extension-6m31

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

একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে একজন ব্যবহারকারীকে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশনের সময় পরামিতি মান নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির অনুরোধ করার জন্য, আপনি আপনার extension.yaml ফাইলের params বিভাগে প্রম্পট সেট আপ করুন৷

এখানে একটি উদাহরণ params বিভাগ, এর পরে একটি টেবিল যা সমস্ত উপলব্ধ প্যারামিটার ক্ষেত্র বর্ণনা করে।

# extension.yaml
...

# Parameters (environment variables) for which the user specifies values during installation
params:
  - param: DB_PATH
    label: Realtime Database path
    description: >-
      What is the Realtime Database path where you will write new text
      for sentiment analysis?
    type: string
    validationRegex: ^\S+$
    validationErrorMessage: Realtime Database path cannot contain spaces.
    example: path/to/posts
    required: true

  - param: TEXT_KEY
    label: Key for text
    description: What is the name of the key that will contain text to be analyzed?
    type: string
    default: textToAnalyze
    required: true

আপনার extension.yaml ফাইলের params বিভাগে, ব্যবহারকারী-কনফিগার করা প্যারামিটার সংজ্ঞায়িত করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন:

মাঠ টাইপ বর্ণনা
param
(প্রয়োজনীয়)
স্ট্রিং প্যারামিটারের নাম
label
(প্রয়োজনীয়)
স্ট্রিং

প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ

যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয়

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

প্যারামিটারের জন্য বিশদ বিবরণ

যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয়

মার্কডাউন সমর্থন করে

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

ব্যবহারকারী কীভাবে প্যারামিটারের মান সেট করে তার জন্য ইনপুট প্রক্রিয়া (উদাহরণস্বরূপ, সরাসরি পাঠ্য লিখুন বা ড্রপডাউন তালিকা থেকে নির্বাচন করুন)

বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:

  • string : ফ্রি-ফর্ম টেক্সট এন্ট্রির অনুমতি দেয় (যেমন আপনার validationRegex দ্বারা সীমাবদ্ধ)
  • select : বিকল্পগুলির একটি পূর্ব-নির্ধারিত তালিকা থেকে একটি এন্ট্রি নির্বাচন করার অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • multiSelect : বিকল্পগুলির একটি পূর্ব-নির্ধারিত তালিকা থেকে এক বা একাধিক এন্ট্রি নির্বাচন করার অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • selectResource : ব্যবহারকারীর প্রজেক্ট থেকে নির্দিষ্ট ধরনের ফায়ারবেস রিসোর্স (যেমন Cloud Storage বালতি) নির্বাচন করার অনুমতি দেয়।

    যখন আপনি এই ধরনের একটি প্যারামিটার নির্দিষ্ট করেন, ব্যবহারকারীরা ইনস্টলেশন UI-তে আরও ব্যবহারকারী-বান্ধব নির্বাচন উইজেট পাবেন; এই কারণে, যখনই সম্ভব selectResource পরামিতি ব্যবহার করুন।

    আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই resourceType ক্ষেত্রটি সংজ্ঞায়িত করতে হবে।

  • secret : সংবেদনশীল স্ট্রিং সংরক্ষণের অনুমতি দেয়, যেমন তৃতীয় পক্ষের পরিষেবাগুলির জন্য API কী। এই মানগুলি ক্লাউড সিক্রেট ম্যানেজারে সংরক্ষণ করা হবে।

    ক্লাউড সিক্রেট ম্যানেজার হল একটি প্রদত্ত পরিষেবা, যেটির ব্যবহারের ফলে আপনার এক্সটেনশন ইনস্টল করা ব্যবহারকারীদের জন্য চার্জ হতে পারে৷ আপনি যদি secret প্যারামিটার টাইপ ব্যবহার করেন, তাহলে আপনার প্রিইনস্টল ফাইলে ডকুমেন্ট করতে ভুলবেন না যে আপনার এক্সটেনশনটি ক্লাউড সিক্রেট ম্যানেজার ব্যবহার করে।

যদি এই ক্ষেত্রটি বাদ দেওয়া হয়, তাহলে প্যারামিটারটি string -এর type ডিফল্ট হয়।

options
(প্রয়োজনীয় যদি পরামিতি type select বা multiSelect হয়)
তালিকা

মানের তালিকা যা থেকে ব্যবহারকারী নির্বাচন করতে পারেন

options ক্ষেত্রের মধ্যে label এবং value ক্ষেত্র অন্তর্ভুক্ত করুন:

  • label (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের সংক্ষিপ্ত বিবরণ
  • value (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের প্রকৃত মান

options ক্ষেত্রের জন্য value ক্ষেত্রটি প্রয়োজন।
যদি label বাদ দেওয়া হয়, তালিকা বিকল্পটি value প্রদর্শন করতে ডিফল্ট হয়।

options:
  - label:
    value:
  - label:
    value:
  - label:
    value:
resourceType
(প্রয়োজনীয় যদি প্যারামিটারের type selectResource হয়)
স্ট্রিং

Firebase রিসোর্সের ধরন যা ব্যবহারকারীকে নির্বাচন করতে প্রম্পট করে। বর্তমানে, শুধুমাত্র Cloud Storage বালতি সম্পদ নির্বাচকদের সমর্থন করে:

সম্পদের ধরন আইডি টাইপ করুন
Cloud Storage বালতি storage.googleapis.com/Bucket

অজানা resourceType মান উপেক্ষা করা হবে এবং UI প্যারামিটারটিকে ফ্রি-ফর্ম string ইনপুট ক্ষেত্র হিসাবে রেন্ডার করবে।

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

প্যারামিটারের জন্য উদাহরণ মান

validationRegex
(ঐচ্ছিক)
(শুধুমাত্র প্রযোজ্য যখন প্যারামিটার type string হয়)
স্ট্রিং

প্যারামিটারের ব্যবহারকারী-কনফিগার করা মান যাচাই করার জন্য Regex স্ট্রিং

রেজেক্স গো লাইব্রেরি ব্যবহার করে সংকলিত হয়েছে: RE2

বৈধতা সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পড়ুন।

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

validationRegex ব্যর্থ হলে প্রদর্শনের জন্য ত্রুটি বার্তা

ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পাঠান।

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

যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা রাখে তাহলে প্যারামিটারের জন্য ডিফল্ট মান

যদি প্রযোজ্য হয়, আপনি default মানের জন্য একটি স্বয়ংক্রিয় জনবহুল প্যারামিটার মান নির্দিষ্ট করতে পারেন (উদাহরণস্বরূপ, রিসাইজ ইমেজ এক্সটেনশনের IMG_BUCKET প্যারামিটার দেখুন)।

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

প্যারামিটারের মানের জন্য অনুরোধ করা হলে ব্যবহারকারী একটি খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে

required বাদ দেওয়া হলে, এই মানটি ডিফল্ট করে true (অর্থাৎ, একটি প্রয়োজনীয় প্যারামিটার)।

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

ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে )

যদি immutable বাদ দেওয়া হয়, তাহলে এই মানটি false ডিফল্ট হয়।

দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের নিয়োজিত ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটার সংজ্ঞায়িত করেন, তাহলে আপনার এই immutable ক্ষেত্রটিকে এর প্যারাম অবজেক্টে অন্তর্ভুক্ত করা উচিত।

ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তা

যখন আপনি string এর type সাথে একটি প্যারামিটার সেট আপ করেন, তখন আপনাকে প্যারামিটারের validationRegex ক্ষেত্রের মাধ্যমে উপযুক্ত রেজেক্স বৈধতা নির্ধারণ করতে হবে।

এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হল একটি ডাটাবেস পাথ বা Cloud Storage বাকেট। সচেতন থাকুন যে ইনস্টল, পুনরায় কনফিগার বা আপডেট করার সময়, Extensions পরিষেবা প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলিকে যাচাই করে না :

  • নির্দিষ্ট ডাটাবেস বা Cloud Storage বাকেট ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
  • ব্যবহারকারীর ডাটাবেসের মধ্যে নির্দিষ্ট ডাটাবেস পাথ বিদ্যমান কিনা

যাইহোক, যখন এক্সটেনশনটি প্রকৃতপক্ষে তার সংস্থানগুলি স্থাপন করছে, তখন Firebase কনসোল বা Firebase CLI একটি ত্রুটি বার্তা প্রদর্শন করবে যদি প্রজেক্টে রেফারেন্সকৃত ডাটাবেস বা Cloud Storage বাকেটটি এখনও সেট আপ না করা হয়।

আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি PREINSTALL ফাইলে ব্যবহারকারীদের এই প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশন ইনস্টল করে, তখন এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশা অনুযায়ী কাজ করে৷

সিস্টেম পরামিতি

সিস্টেম প্যারামিটারগুলি একটি এক্সটেনশনের সংস্থানগুলির মৌলিক কনফিগারেশন নিয়ন্ত্রণ করে৷ যেহেতু তারা রিসোর্স কনফিগারেশন নিয়ন্ত্রণ করার জন্য বোঝানো হয়েছে, সেগুলি আপনার ফাংশন কোডের মধ্যে থেকে পরিবেশ ভেরিয়েবল হিসাবে অ্যাক্সেসযোগ্য নয়।

extension.yaml এ এই প্যারামিটারগুলির জন্য আপনাকে সাধারণত কিছু ঘোষণা করতে হবে না। প্রতিটি এক্সটেনশন উদাহরণের জন্য সেগুলি স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা যখন আপনার এক্সটেনশন ইনস্টল করেন তখন তাদের কাস্টম মান সেট করার সুযোগ থাকে৷

যাইহোক, যদি আপনার এক্সটেনশনের বিশেষ সম্পদের প্রয়োজনীয়তা থাকে, তাহলে আপনি extension.yaml এ প্রতি-রিসোর্স স্তরে নির্দিষ্ট মান সেট করতে পারেন। এই প্রতি-সম্পদ কনফিগারেশন সেটিংস ব্যবহারকারীর এক্সটেনশন ইনস্ট্যান্স-ওয়াইড সেটিংসকে ওভাররাইড করবে। যেমন:

resources:
- name: high_memory_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function needs at least 1GB of memory!
  properties:
    httpsTrigger: {}
    runtime: nodejs18
    availableMemoryMb: 1024
- name: normal_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function has no special memory requirements. It will use the
    default value, or the value of `firebaseextension.v1beta.function/memory`
  properties:
    httpsTrigger: {}
    runtime: nodejs18

উপলব্ধ সিস্টেম প্যারাম হল:

নাম লেবেল (মানব বন্ধুত্বপূর্ণ) properties সংশ্লিষ্ট ক্ষেত্র বর্ণনা
firebaseextensions.v1beta.function/location অবস্থান location ক্লাউড ফাংশনগুলি কোন অঞ্চলে স্থাপন করা উচিত?
firebaseextensions.v1beta.function/memory ফাংশন মেমরি memory প্রতিটি ফাংশনের জন্য কত মেগাবাইট মেমরি বরাদ্দ করা উচিত?
firebaseextensions.v1beta.function/timeoutSeconds ফাংশন টাইমআউট timeout সময় শেষ হওয়ার আগে কত সেকেন্ড ফাংশন চালানো উচিত?
firebaseextensions.v1beta.function/vpcConnectorEgressSettings ভিপিসি সংযোগকারী এগ্রেস vpcConnectorEgressSettings একটি VPC সংযোগকারী কনফিগার করা হলে বহির্গামী ট্রাফিক নিয়ন্ত্রণ করে
firebaseextensions.v1beta.function/vpcConnector ভিপিসি সংযোগকারী vpcConnector ক্লাউড ফাংশনগুলিকে নির্দিষ্ট VPC সংযোগকারীর সাথে সংযুক্ত করে৷
firebaseextensions.v1beta.function/minInstances ন্যূনতম ফাংশন দৃষ্টান্ত minInstances একবারে চালানোর জন্য এই ফাংশনের ন্যূনতম সংখ্যক দৃষ্টান্ত
firebaseextensions.v1beta.function/maxInstances সর্বাধিক ফাংশন দৃষ্টান্ত maxInstances একবারে চালানোর জন্য এই ফাংশনের সর্বোচ্চ সংখ্যক দৃষ্টান্ত
firebaseextensions.v1beta.function/ingressSettings প্রবেশের সেটিংস ingressSettings যেখান থেকে ইনকামিং ট্রাফিক গ্রহণ করা হয় তা নিয়ন্ত্রণ করে
firebaseextensions.v1beta.function/labels লেবেল labels এক্সটেনশনের সমস্ত সংস্থানে প্রযোজ্য লেবেল৷
,

প্যারামিটার হল এমন একটি প্রক্রিয়া যার মাধ্যমে একজন ব্যবহারকারী একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করে। প্যারামিটারগুলি একটি এক্সটেনশনের জন্য পরিবেশের ভেরিয়েবলের মতো। পরামিতিগুলির মানগুলি হয় স্বয়ংক্রিয়ভাবে জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইন্সটলেশনের সময় ব্যবহারকারী দ্বারা নির্দিষ্ট) হতে পারে।

এই প্যারামিটারগুলি আপনার এক্সটেনশনের ফাংশন সোর্স কোড, আপনার extension.yaml ফাইল এবং আপনার POSTINSTALL.md ফাইলে উল্লেখ করার জন্য উপলব্ধ। PARAMETER_NAME নামক একটি প্যারামিটারকে কীভাবে উল্লেখ করা যায় তার জন্য এখানে সিনট্যাক্স রয়েছে:

  • আপনার ফাংশন সোর্স কোডের মধ্যে, params মডিউল ব্যবহার করুন (উদাহরণস্বরূপ, params.defineInt(" PARAMETER_NAME ") ) বা process.env. PARAMETER_NAME

  • extension.yaml এবং POSTINSTALL.md মধ্যে ${param: PARAMETER_NAME } ব্যবহার করুন।

    ইনস্টলেশনের পরে, Firebase কনসোল POSTINSTALL.md ফাইলের বিষয়বস্তু প্রদর্শন করে এবং ইনস্টল করা উদাহরণের জন্য প্রকৃত মান সহ যেকোনো পরামিতি রেফারেন্স পূরণ করে।

স্বয়ংক্রিয় জনবহুল পরামিতি

একটি এক্সটেনশনের প্রতিটি ইনস্টল করা দৃষ্টান্তের স্বয়ংক্রিয়ভাবে Firebase দ্বারা প্রদত্ত বেশ কয়েকটি ডিফল্ট স্বয়ংক্রিয়-পপুলেট প্যারামিটারে অ্যাক্সেস থাকে (নীচের টেবিলটি পড়ুন)। এই প্যারামিটার মানগুলি হয় Firebase প্রকল্পের জন্য ডিফল্ট মান (যেমন ডিফল্ট স্টোরেজ বাকেট) অথবা এগুলি এক্সটেনশন-নির্দিষ্ট (যেমন এক্সটেনশনের ইনস্ট্যান্স আইডি)।

সমস্ত স্বয়ংক্রিয়-জনবহুল পরামিতি মান অপরিবর্তনীয়। এগুলি প্রকল্প তৈরি বা এক্সটেনশন ইনস্টলেশনের সময় সেট করা হয়।

যদিও Firebase এক্সটেনশনের জন্য এই পরামিতি মানগুলিকে স্বয়ংক্রিয়ভাবে পপুলেট করে, Firebase ইনস্টলেশনের সময় ব্যবহারকারীর জন্য সংশ্লিষ্ট পণ্যগুলিকে স্বয়ংক্রিয়ভাবে প্রদান করে না । এক্সটেনশন ইনস্টল করা ব্যবহারকারীকে অবশ্যই ইনস্টলেশনের আগে তাদের প্রকল্পে সংশ্লিষ্ট এবং প্রযোজ্য পণ্য(গুলি) সক্ষম করতে হবে। উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনটি Cloud Firestore সাথে জড়িত থাকে তবে ব্যবহারকারীকে অবশ্যই তাদের প্রকল্পে Cloud Firestore সেট আপ করতে হবে। আমরা PREINSTALL.md ফাইলে এই প্রয়োজনীয়তাগুলি সম্পর্কে আপনার ব্যবহারকারীদের অবহিত করার পরামর্শ দিই।

স্বয়ংক্রিয় জনবহুল পরামিতির জন্য রেফারেন্স বর্ণনা পরামিতি মান (ফায়ারবেস দ্বারা সরবরাহিত)
Firebase প্রকল্প থেকে ডিফল্ট মান সহ পরামিতি
PROJECT_ID Firebase প্রকল্পের জন্য অনন্য শনাক্তকারী যেখানে এক্সটেনশন ইনস্টল করা আছে

সাধারণ বিন্যাস:
project-id

উদাহরণ মান:
project-123

DATABASE_URL Firebase প্রকল্পের ডিফল্ট Realtime Database ইনস্ট্যান্স URL

সাধারণ বিন্যাস:
https:// project-id -default-rtdb.firebaseio.com
(মার্কিন উদাহরণ)
বা
https:// project-id -default-rtdb. region-code .firebasedatabase.app
(অ-মার্কিন উদাহরণ)

উদাহরণ মান:
https://project-123-default-rtdb.firebaseio.com

DATABASE_INSTANCE

Firebase প্রকল্পের ডিফল্ট Realtime Database উদাহরণের নাম

সাধারণত, এই মানটি প্রজেক্ট আইডির মতই হয়, অথবা -default-rtdb এ শেষ হয়।

সাধারণ বিন্যাস:
project-id

উদাহরণ মান:
project-123

STORAGE_BUCKET Firebase প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বাকেটের নাম

সাধারণ বিন্যাস:
PROJECT_ID .firebasestorage.app

উদাহরণ মান:
project-123.firebasestorage.app

এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার
EXT_INSTANCE_ID

ইনস্টল করা এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী

এই মানটি extension.yaml ফাইলে নির্দিষ্ট করা name ক্ষেত্র থেকে তৈরি করা হয়েছে।

1ম ইনস্টল করা উদাহরণের জন্য সাধারণ বিন্যাস (Firebase দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত করা যাবে না ):
name-from-extension.yaml

উদাহরণ মান:
my-awesome-extension


২য়-ইন্সটল করা দৃষ্টান্তের জন্য সাধারণীকৃত বিন্যাস এবং তার উপরে (Firebase দ্বারা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়েছে; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত হতে পারে ):
name-from-extension.yaml - 4-digit-alphanumeric-hash

উদাহরণ মান:
my-awesome-extension-6m31

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

একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে একজন ব্যবহারকারীকে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশনের সময় পরামিতি মান নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির অনুরোধ করার জন্য, আপনি আপনার extension.yaml ফাইলের params বিভাগে প্রম্পট সেট আপ করুন৷

এখানে একটি উদাহরণ params বিভাগ, এর পরে একটি টেবিল যা সমস্ত উপলব্ধ প্যারামিটার ক্ষেত্র বর্ণনা করে।

# extension.yaml
...

# Parameters (environment variables) for which the user specifies values during installation
params:
  - param: DB_PATH
    label: Realtime Database path
    description: >-
      What is the Realtime Database path where you will write new text
      for sentiment analysis?
    type: string
    validationRegex: ^\S+$
    validationErrorMessage: Realtime Database path cannot contain spaces.
    example: path/to/posts
    required: true

  - param: TEXT_KEY
    label: Key for text
    description: What is the name of the key that will contain text to be analyzed?
    type: string
    default: textToAnalyze
    required: true

আপনার extension.yaml ফাইলের params বিভাগে, ব্যবহারকারী-কনফিগার করা প্যারামিটার সংজ্ঞায়িত করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন:

মাঠ টাইপ বর্ণনা
param
(প্রয়োজনীয়)
স্ট্রিং প্যারামিটারের নাম
label
(প্রয়োজনীয়)
স্ট্রিং

প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ

যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয়

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

প্যারামিটারের জন্য বিশদ বিবরণ

যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয়

মার্কডাউন সমর্থন করে

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

ব্যবহারকারী কীভাবে প্যারামিটারের মান সেট করে তার জন্য ইনপুট প্রক্রিয়া (উদাহরণস্বরূপ, সরাসরি পাঠ্য লিখুন বা ড্রপডাউন তালিকা থেকে নির্বাচন করুন)

বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:

  • string : ফ্রি-ফর্ম টেক্সট এন্ট্রির অনুমতি দেয় (যেমন আপনার validationRegex দ্বারা সীমাবদ্ধ)
  • select : বিকল্পগুলির একটি পূর্ব-নির্ধারিত তালিকা থেকে একটি এন্ট্রি নির্বাচন করার অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • multiSelect : বিকল্পগুলির একটি পূর্ব-নির্ধারিত তালিকা থেকে এক বা একাধিক এন্ট্রি নির্বাচন করার অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • selectResource : ব্যবহারকারীর প্রজেক্ট থেকে নির্দিষ্ট ধরনের ফায়ারবেস রিসোর্স (যেমন Cloud Storage বালতি) নির্বাচন করার অনুমতি দেয়।

    যখন আপনি এই ধরনের একটি প্যারামিটার নির্দিষ্ট করেন, ব্যবহারকারীরা ইনস্টলেশন UI-তে আরও ব্যবহারকারী-বান্ধব নির্বাচন উইজেট পাবেন; এই কারণে, যখনই সম্ভব selectResource পরামিতি ব্যবহার করুন।

    আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই resourceType ক্ষেত্রটি সংজ্ঞায়িত করতে হবে।

  • secret : সংবেদনশীল স্ট্রিং সংরক্ষণের অনুমতি দেয়, যেমন তৃতীয় পক্ষের পরিষেবাগুলির জন্য API কী। এই মানগুলি ক্লাউড সিক্রেট ম্যানেজারে সংরক্ষণ করা হবে।

    ক্লাউড সিক্রেট ম্যানেজার হল একটি প্রদত্ত পরিষেবা, যেটির ব্যবহারের ফলে আপনার এক্সটেনশন ইনস্টল করা ব্যবহারকারীদের জন্য চার্জ হতে পারে৷ আপনি যদি secret প্যারামিটার টাইপ ব্যবহার করেন, তাহলে আপনার প্রিইনস্টল ফাইলে ডকুমেন্ট করতে ভুলবেন না যে আপনার এক্সটেনশনটি ক্লাউড সিক্রেট ম্যানেজার ব্যবহার করে।

যদি এই ক্ষেত্রটি বাদ দেওয়া হয়, তাহলে প্যারামিটারটি string -এর type ডিফল্ট হয়।

options
(প্রয়োজনীয় যদি পরামিতি type select বা multiSelect হয়)
তালিকা

মানের তালিকা যা থেকে ব্যবহারকারী নির্বাচন করতে পারেন

options ক্ষেত্রের মধ্যে label এবং value ক্ষেত্র অন্তর্ভুক্ত করুন:

  • label (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের সংক্ষিপ্ত বিবরণ
  • value (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের প্রকৃত মান

options ক্ষেত্রের জন্য value ক্ষেত্রটি প্রয়োজন।
যদি label বাদ দেওয়া হয়, তালিকা বিকল্পটি value প্রদর্শন করতে ডিফল্ট হয়।

options:
  - label:
    value:
  - label:
    value:
  - label:
    value:
resourceType
(প্রয়োজনীয় যদি প্যারামিটারের type selectResource হয়)
স্ট্রিং

Firebase রিসোর্সের ধরন যা ব্যবহারকারীকে নির্বাচন করতে প্রম্পট করে। বর্তমানে, শুধুমাত্র Cloud Storage বালতি সম্পদ নির্বাচকদের সমর্থন করে:

সম্পদের ধরন আইডি টাইপ করুন
Cloud Storage বালতি storage.googleapis.com/Bucket

অজানা resourceType মান উপেক্ষা করা হবে এবং UI প্যারামিটারটিকে ফ্রি-ফর্ম string ইনপুট ক্ষেত্র হিসাবে রেন্ডার করবে।

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

প্যারামিটারের জন্য উদাহরণ মান

validationRegex
(ঐচ্ছিক)
(শুধুমাত্র প্রযোজ্য যখন প্যারামিটার type string হয়)
স্ট্রিং

প্যারামিটারের ব্যবহারকারী-কনফিগার করা মান যাচাই করার জন্য Regex স্ট্রিং

রেজেক্স গো লাইব্রেরি ব্যবহার করে সংকলিত হয়েছে: RE2

বৈধতা সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পড়ুন।

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

validationRegex ব্যর্থ হলে প্রদর্শনের জন্য ত্রুটি বার্তা

ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পাঠান।

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

যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা রাখে তাহলে প্যারামিটারের জন্য ডিফল্ট মান

যদি প্রযোজ্য হয়, আপনি default মানের জন্য একটি স্বয়ংক্রিয় জনবহুল প্যারামিটার মান নির্দিষ্ট করতে পারেন (উদাহরণস্বরূপ, রিসাইজ ইমেজ এক্সটেনশনের IMG_BUCKET প্যারামিটার দেখুন)।

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

প্যারামিটারের মানের জন্য অনুরোধ করা হলে ব্যবহারকারী একটি খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে

required বাদ দেওয়া হলে, এই মানটি ডিফল্ট করে true (অর্থাৎ, একটি প্রয়োজনীয় প্যারামিটার)।

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

ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে )

যদি immutable বাদ দেওয়া হয়, তাহলে এই মানটি false ডিফল্ট হয়।

দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের নিয়োজিত ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটার সংজ্ঞায়িত করেন, তাহলে আপনার এই immutable ক্ষেত্রটিকে এর প্যারাম অবজেক্টে অন্তর্ভুক্ত করা উচিত।

ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তা

যখন আপনি string এর type সাথে একটি প্যারামিটার সেট আপ করেন, তখন আপনাকে প্যারামিটারের validationRegex ক্ষেত্রের মাধ্যমে উপযুক্ত রেজেক্স বৈধতা নির্ধারণ করতে হবে।

এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হল একটি ডাটাবেস পাথ বা Cloud Storage বাকেট। সচেতন থাকুন যে ইনস্টল, পুনরায় কনফিগার বা আপডেট করার সময়, Extensions পরিষেবা প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলিকে যাচাই করে না :

  • নির্দিষ্ট ডাটাবেস বা Cloud Storage বাকেট ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
  • ব্যবহারকারীর ডাটাবেসের মধ্যে নির্দিষ্ট ডাটাবেস পাথ বিদ্যমান কিনা

যাইহোক, যখন এক্সটেনশনটি প্রকৃতপক্ষে তার সংস্থানগুলি স্থাপন করছে, তখন Firebase কনসোল বা Firebase CLI একটি ত্রুটি বার্তা প্রদর্শন করবে যদি প্রজেক্টে রেফারেন্সকৃত ডাটাবেস বা Cloud Storage বাকেটটি এখনও সেট আপ না করা হয়।

আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি PREINSTALL ফাইলে ব্যবহারকারীদের এই প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশন ইনস্টল করে, তখন এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশা অনুযায়ী কাজ করে৷

সিস্টেম পরামিতি

সিস্টেম প্যারামিটারগুলি একটি এক্সটেনশনের সংস্থানগুলির মৌলিক কনফিগারেশন নিয়ন্ত্রণ করে৷ যেহেতু তারা রিসোর্স কনফিগারেশন নিয়ন্ত্রণ করার জন্য বোঝানো হয়েছে, সেগুলি আপনার ফাংশন কোডের মধ্যে থেকে পরিবেশ ভেরিয়েবল হিসাবে অ্যাক্সেসযোগ্য নয়।

extension.yaml এ এই প্যারামিটারগুলির জন্য আপনাকে সাধারণত কিছু ঘোষণা করতে হবে না। প্রতিটি এক্সটেনশন উদাহরণের জন্য সেগুলি স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা যখন আপনার এক্সটেনশন ইনস্টল করেন তখন তাদের কাস্টম মান সেট করার সুযোগ থাকে৷

যাইহোক, যদি আপনার এক্সটেনশনের বিশেষ সম্পদের প্রয়োজনীয়তা থাকে, তাহলে আপনি extension.yaml এ প্রতি-রিসোর্স স্তরে নির্দিষ্ট মান সেট করতে পারেন। এই প্রতি-সম্পদ কনফিগারেশন সেটিংস ব্যবহারকারীর এক্সটেনশন ইনস্ট্যান্স-ওয়াইড সেটিংসকে ওভাররাইড করবে। যেমন:

resources:
- name: high_memory_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function needs at least 1GB of memory!
  properties:
    httpsTrigger: {}
    runtime: nodejs18
    availableMemoryMb: 1024
- name: normal_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function has no special memory requirements. It will use the
    default value, or the value of `firebaseextension.v1beta.function/memory`
  properties:
    httpsTrigger: {}
    runtime: nodejs18

উপলব্ধ সিস্টেম প্যারাম হল:

নাম লেবেল (মানব বন্ধুত্বপূর্ণ) properties সংশ্লিষ্ট ক্ষেত্র বর্ণনা
firebaseextensions.v1beta.function/location অবস্থান location ক্লাউড ফাংশনগুলি কোন অঞ্চলে স্থাপন করা উচিত?
firebaseextensions.v1beta.function/memory ফাংশন মেমরি memory প্রতিটি ফাংশনের জন্য কত মেগাবাইট মেমরি বরাদ্দ করা উচিত?
firebaseextensions.v1beta.function/timeoutSeconds ফাংশন টাইমআউট timeout সময় শেষ হওয়ার আগে কত সেকেন্ড ফাংশন চালানো উচিত?
firebaseextensions.v1beta.function/vpcConnectorEgressSettings ভিপিসি সংযোগকারী এগ্রেস vpcConnectorEgressSettings একটি VPC সংযোগকারী কনফিগার করা হলে বহির্গামী ট্রাফিক নিয়ন্ত্রণ করে
firebaseextensions.v1beta.function/vpcConnector ভিপিসি সংযোগকারী vpcConnector ক্লাউড ফাংশনগুলিকে নির্দিষ্ট VPC সংযোগকারীর সাথে সংযুক্ত করে৷
firebaseextensions.v1beta.function/minInstances ন্যূনতম ফাংশন দৃষ্টান্ত minInstances একবারে চালানোর জন্য এই ফাংশনের ন্যূনতম সংখ্যক দৃষ্টান্ত
firebaseextensions.v1beta.function/maxInstances সর্বাধিক ফাংশন দৃষ্টান্ত maxInstances একবারে চালানোর জন্য এই ফাংশনের সর্বোচ্চ সংখ্যক দৃষ্টান্ত
firebaseextensions.v1beta.function/ingressSettings প্রবেশের সেটিংস ingressSettings যেখান থেকে ইনকামিং ট্রাফিক গ্রহণ করা হয় তা নিয়ন্ত্রণ করে
firebaseextensions.v1beta.function/labels লেবেল labels এক্সটেনশনের সমস্ত সংস্থানে প্রযোজ্য লেবেল৷
,

প্যারামিটার হল এমন একটি প্রক্রিয়া যার মাধ্যমে একজন ব্যবহারকারী একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করে। প্যারামিটারগুলি একটি এক্সটেনশনের জন্য পরিবেশের ভেরিয়েবলের মতো। পরামিতিগুলির মানগুলি হয় স্বয়ংক্রিয়ভাবে জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইন্সটলেশনের সময় ব্যবহারকারী দ্বারা নির্দিষ্ট) হতে পারে।

এই প্যারামিটারগুলি আপনার এক্সটেনশনের ফাংশন সোর্স কোড, আপনার extension.yaml ফাইল এবং আপনার POSTINSTALL.md ফাইলে উল্লেখ করার জন্য উপলব্ধ। PARAMETER_NAME নামক একটি প্যারামিটারকে কীভাবে উল্লেখ করা যায় তার জন্য এখানে সিনট্যাক্স রয়েছে:

  • আপনার ফাংশন সোর্স কোডের মধ্যে, params মডিউল ব্যবহার করুন (উদাহরণস্বরূপ, params.defineInt(" PARAMETER_NAME ") ) বা process.env. PARAMETER_NAME

  • extension.yaml এবং POSTINSTALL.md মধ্যে ${param: PARAMETER_NAME } ব্যবহার করুন।

    ইনস্টলেশনের পরে, Firebase কনসোল POSTINSTALL.md ফাইলের বিষয়বস্তু প্রদর্শন করে এবং ইনস্টল করা উদাহরণের জন্য প্রকৃত মান সহ যেকোনো পরামিতি রেফারেন্স পূরণ করে।

স্বয়ংক্রিয় জনবহুল পরামিতি

একটি এক্সটেনশনের প্রতিটি ইনস্টল করা দৃষ্টান্তের স্বয়ংক্রিয়ভাবে Firebase দ্বারা প্রদত্ত বেশ কয়েকটি ডিফল্ট স্বয়ংক্রিয়-পপুলেট প্যারামিটারে অ্যাক্সেস থাকে (নীচের টেবিলটি পড়ুন)। এই প্যারামিটার মানগুলি হয় Firebase প্রকল্পের জন্য ডিফল্ট মান (যেমন ডিফল্ট স্টোরেজ বাকেট) অথবা এগুলি এক্সটেনশন-নির্দিষ্ট (যেমন এক্সটেনশনের ইনস্ট্যান্স আইডি)।

সমস্ত স্বয়ংক্রিয়-জনবহুল পরামিতি মান অপরিবর্তনীয়। এগুলি প্রকল্প তৈরি বা এক্সটেনশন ইনস্টলেশনের সময় সেট করা হয়।

যদিও Firebase এক্সটেনশনের জন্য এই পরামিতি মানগুলিকে স্বয়ংক্রিয়ভাবে পপুলেট করে, Firebase ইনস্টলেশনের সময় ব্যবহারকারীর জন্য সংশ্লিষ্ট পণ্যগুলিকে স্বয়ংক্রিয়ভাবে প্রদান করে না । এক্সটেনশন ইনস্টল করা ব্যবহারকারীকে অবশ্যই ইনস্টলেশনের আগে তাদের প্রকল্পে সংশ্লিষ্ট এবং প্রযোজ্য পণ্য(গুলি) সক্ষম করতে হবে। উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনটি Cloud Firestore সাথে জড়িত থাকে তবে ব্যবহারকারীকে অবশ্যই তাদের প্রকল্পে Cloud Firestore সেট আপ করতে হবে। আমরা PREINSTALL.md ফাইলে এই প্রয়োজনীয়তাগুলি সম্পর্কে আপনার ব্যবহারকারীদের অবহিত করার পরামর্শ দিই।

স্বয়ংক্রিয় জনবহুল পরামিতির জন্য রেফারেন্স বর্ণনা পরামিতি মান (ফায়ারবেস দ্বারা সরবরাহিত)
Firebase প্রকল্প থেকে ডিফল্ট মান সহ পরামিতি
PROJECT_ID Firebase প্রকল্পের জন্য অনন্য শনাক্তকারী যেখানে এক্সটেনশন ইনস্টল করা আছে

সাধারণ বিন্যাস:
project-id

উদাহরণ মান:
project-123

DATABASE_URL Firebase প্রকল্পের ডিফল্ট Realtime Database ইনস্ট্যান্স URL

সাধারণ বিন্যাস:
https:// project-id -default-rtdb.firebaseio.com
(মার্কিন উদাহরণ)
বা
https:// project-id -default-rtdb. region-code .firebasedatabase.app
(অ-মার্কিন উদাহরণ)

উদাহরণ মান:
https://project-123-default-rtdb.firebaseio.com

DATABASE_INSTANCE

Firebase প্রকল্পের ডিফল্ট Realtime Database উদাহরণের নাম

সাধারণত, এই মানটি প্রজেক্ট আইডির মতই হয়, অথবা -default-rtdb এ শেষ হয়।

সাধারণ বিন্যাস:
project-id

উদাহরণ মান:
project-123

STORAGE_BUCKET Firebase প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বাকেটের নাম

সাধারণ বিন্যাস:
PROJECT_ID .firebasestorage.app

উদাহরণ মান:
project-123.firebasestorage.app

এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার
EXT_INSTANCE_ID

ইনস্টল করা এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী

এই মানটি extension.yaml ফাইলে নির্দিষ্ট করা name ক্ষেত্র থেকে তৈরি করা হয়েছে।

1ম ইনস্টল করা উদাহরণের জন্য সাধারণ বিন্যাস (Firebase দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত করা যাবে না ):
name-from-extension.yaml

উদাহরণ মান:
my-awesome-extension


২য়-ইন্সটল করা দৃষ্টান্তের জন্য সাধারণীকৃত বিন্যাস এবং তার উপরে (Firebase দ্বারা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়েছে; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত হতে পারে ):
name-from-extension.yaml - 4-digit-alphanumeric-hash

উদাহরণ মান:
my-awesome-extension-6m31

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

একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে একজন ব্যবহারকারীকে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশনের সময় পরামিতি মান নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির অনুরোধ করার জন্য, আপনি আপনার extension.yaml ফাইলের params বিভাগে প্রম্পট সেট আপ করুন৷

এখানে একটি উদাহরণ params বিভাগ, এর পরে একটি টেবিল যা সমস্ত উপলব্ধ প্যারামিটার ক্ষেত্র বর্ণনা করে।

# extension.yaml
...

# Parameters (environment variables) for which the user specifies values during installation
params:
  - param: DB_PATH
    label: Realtime Database path
    description: >-
      What is the Realtime Database path where you will write new text
      for sentiment analysis?
    type: string
    validationRegex: ^\S+$
    validationErrorMessage: Realtime Database path cannot contain spaces.
    example: path/to/posts
    required: true

  - param: TEXT_KEY
    label: Key for text
    description: What is the name of the key that will contain text to be analyzed?
    type: string
    default: textToAnalyze
    required: true

আপনার extension.yaml ফাইলের params বিভাগে, ব্যবহারকারী-কনফিগার করা প্যারামিটার সংজ্ঞায়িত করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন:

মাঠ টাইপ বর্ণনা
param
(প্রয়োজনীয়)
স্ট্রিং প্যারামিটারের নাম
label
(প্রয়োজনীয়)
স্ট্রিং

প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ

যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয়

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

প্যারামিটারের জন্য বিশদ বিবরণ

যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয়

মার্কডাউন সমর্থন করে

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

ব্যবহারকারী কীভাবে প্যারামিটারের মান সেট করে তার জন্য ইনপুট প্রক্রিয়া (উদাহরণস্বরূপ, সরাসরি পাঠ্য লিখুন বা ড্রপডাউন তালিকা থেকে নির্বাচন করুন)

বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:

  • string : ফ্রি-ফর্ম টেক্সট এন্ট্রির অনুমতি দেয় (যেমন আপনার validationRegex দ্বারা সীমাবদ্ধ)
  • select : বিকল্পগুলির একটি পূর্ব-নির্ধারিত তালিকা থেকে একটি এন্ট্রি নির্বাচন করার অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • multiSelect : বিকল্পগুলির একটি পূর্ব-নির্ধারিত তালিকা থেকে এক বা একাধিক এন্ট্রি নির্বাচন করার অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • selectResource : ব্যবহারকারীর প্রজেক্ট থেকে নির্দিষ্ট ধরনের ফায়ারবেস রিসোর্স (যেমন Cloud Storage বালতি) নির্বাচন করার অনুমতি দেয়।

    যখন আপনি এই ধরনের একটি প্যারামিটার নির্দিষ্ট করেন, ব্যবহারকারীরা ইনস্টলেশন UI-তে আরও ব্যবহারকারী-বান্ধব নির্বাচন উইজেট পাবেন; এই কারণে, যখনই সম্ভব selectResource পরামিতি ব্যবহার করুন।

    আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই resourceType ক্ষেত্রটি সংজ্ঞায়িত করতে হবে।

  • secret : সংবেদনশীল স্ট্রিং সংরক্ষণের অনুমতি দেয়, যেমন তৃতীয় পক্ষের পরিষেবাগুলির জন্য API কী। এই মানগুলি ক্লাউড সিক্রেট ম্যানেজারে সংরক্ষণ করা হবে।

    ক্লাউড সিক্রেট ম্যানেজার হল একটি প্রদত্ত পরিষেবা, যেটির ব্যবহারের ফলে আপনার এক্সটেনশন ইনস্টল করা ব্যবহারকারীদের জন্য চার্জ হতে পারে৷ আপনি যদি secret প্যারামিটার টাইপ ব্যবহার করেন, তাহলে আপনার প্রিইনস্টল ফাইলে ডকুমেন্ট করতে ভুলবেন না যে আপনার এক্সটেনশনটি ক্লাউড সিক্রেট ম্যানেজার ব্যবহার করে।

যদি এই ক্ষেত্রটি বাদ দেওয়া হয়, তাহলে প্যারামিটারটি string -এর type ডিফল্ট হয়।

options
(প্রয়োজনীয় যদি পরামিতি type select বা multiSelect হয়)
তালিকা

মানের তালিকা যা থেকে ব্যবহারকারী নির্বাচন করতে পারেন

options ক্ষেত্রের মধ্যে label এবং value ক্ষেত্র অন্তর্ভুক্ত করুন:

  • label (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের সংক্ষিপ্ত বিবরণ
  • value (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের প্রকৃত মান

options ক্ষেত্রের জন্য value ক্ষেত্রটি প্রয়োজন।
যদি label বাদ দেওয়া হয়, তালিকা বিকল্পটি value প্রদর্শন করতে ডিফল্ট হয়।

options:
  - label:
    value:
  - label:
    value:
  - label:
    value:
resourceType
(প্রয়োজনীয় যদি প্যারামিটারের type selectResource হয়)
স্ট্রিং

Firebase রিসোর্সের ধরন যা ব্যবহারকারীকে নির্বাচন করতে প্রম্পট করে। বর্তমানে, শুধুমাত্র Cloud Storage বালতি সম্পদ নির্বাচকদের সমর্থন করে:

সম্পদের ধরন আইডি টাইপ করুন
Cloud Storage বালতি storage.googleapis.com/Bucket

অজানা resourceType মান উপেক্ষা করা হবে এবং UI প্যারামিটারটিকে ফ্রি-ফর্ম string ইনপুট ক্ষেত্র হিসাবে রেন্ডার করবে।

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

প্যারামিটারের জন্য উদাহরণ মান

validationRegex
(ঐচ্ছিক)
(শুধুমাত্র প্রযোজ্য যখন প্যারামিটার type string হয়)
স্ট্রিং

প্যারামিটারের ব্যবহারকারী-কনফিগার করা মান যাচাই করার জন্য Regex স্ট্রিং

রেজেক্স গো লাইব্রেরি ব্যবহার করে সংকলিত হয়েছে: RE2

বৈধতা সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পড়ুন।

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

validationRegex ব্যর্থ হলে প্রদর্শনের জন্য ত্রুটি বার্তা

ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পাঠান।

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

যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা রাখে তাহলে প্যারামিটারের জন্য ডিফল্ট মান

যদি প্রযোজ্য হয়, আপনি default মানের জন্য একটি স্বয়ংক্রিয় জনবহুল প্যারামিটার মান নির্দিষ্ট করতে পারেন (উদাহরণস্বরূপ, রিসাইজ ইমেজ এক্সটেনশনের IMG_BUCKET প্যারামিটার দেখুন)।

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

প্যারামিটারের মানের জন্য অনুরোধ করা হলে ব্যবহারকারী একটি খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে

required বাদ দেওয়া হলে, এই মানটি ডিফল্ট করে true (অর্থাৎ, একটি প্রয়োজনীয় প্যারামিটার)।

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

ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে )

যদি immutable বাদ দেওয়া হয়, তাহলে এই মানটি false ডিফল্ট হয়।

দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের নিয়োজিত ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটার সংজ্ঞায়িত করেন, তাহলে আপনার এই immutable ক্ষেত্রটিকে এর প্যারাম অবজেক্টে অন্তর্ভুক্ত করা উচিত।

ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তা

যখন আপনি string এর type সাথে একটি প্যারামিটার সেট আপ করেন, তখন আপনাকে প্যারামিটারের validationRegex ক্ষেত্রের মাধ্যমে উপযুক্ত রেজেক্স বৈধতা নির্ধারণ করতে হবে।

এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হল একটি ডাটাবেস পাথ বা Cloud Storage বাকেট। সচেতন থাকুন যে ইনস্টল, পুনরায় কনফিগার বা আপডেট করার সময়, Extensions পরিষেবা প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলিকে যাচাই করে না :

  • নির্দিষ্ট ডাটাবেস বা Cloud Storage বাকেট ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
  • ব্যবহারকারীর ডাটাবেসের মধ্যে নির্দিষ্ট ডাটাবেস পাথ বিদ্যমান কিনা

যাইহোক, যখন এক্সটেনশনটি প্রকৃতপক্ষে তার সংস্থানগুলি স্থাপন করছে, তখন Firebase কনসোল বা Firebase CLI একটি ত্রুটি বার্তা প্রদর্শন করবে যদি প্রজেক্টে রেফারেন্সকৃত ডাটাবেস বা Cloud Storage বাকেটটি এখনও সেট আপ না করা হয়।

আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি PREINSTALL ফাইলে ব্যবহারকারীদের এই প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশন ইনস্টল করে, তখন এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশা অনুযায়ী কাজ করে৷

সিস্টেম পরামিতি

সিস্টেম প্যারামিটারগুলি একটি এক্সটেনশনের সংস্থানগুলির মৌলিক কনফিগারেশন নিয়ন্ত্রণ করে৷ যেহেতু তারা রিসোর্স কনফিগারেশন নিয়ন্ত্রণ করার জন্য বোঝানো হয়েছে, সেগুলি আপনার ফাংশন কোডের মধ্যে থেকে পরিবেশ ভেরিয়েবল হিসাবে অ্যাক্সেসযোগ্য নয়।

extension.yaml এ এই প্যারামিটারগুলির জন্য আপনাকে সাধারণত কিছু ঘোষণা করতে হবে না। প্রতিটি এক্সটেনশন উদাহরণের জন্য সেগুলি স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা যখন আপনার এক্সটেনশন ইনস্টল করেন তখন তাদের কাস্টম মান সেট করার সুযোগ থাকে৷

যাইহোক, যদি আপনার এক্সটেনশনের বিশেষ সম্পদের প্রয়োজনীয়তা থাকে, তাহলে আপনি extension.yaml এ প্রতি-রিসোর্স স্তরে নির্দিষ্ট মান সেট করতে পারেন। এই প্রতি-সম্পদ কনফিগারেশন সেটিংস ব্যবহারকারীর এক্সটেনশন ইনস্ট্যান্স-ওয়াইড সেটিংসকে ওভাররাইড করবে। যেমন:

resources:
- name: high_memory_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function needs at least 1GB of memory!
  properties:
    httpsTrigger: {}
    runtime: nodejs18
    availableMemoryMb: 1024
- name: normal_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function has no special memory requirements. It will use the
    default value, or the value of `firebaseextension.v1beta.function/memory`
  properties:
    httpsTrigger: {}
    runtime: nodejs18

উপলব্ধ সিস্টেম প্যারাম হল:

নাম লেবেল (মানব বন্ধুত্বপূর্ণ) properties সংশ্লিষ্ট ক্ষেত্র বর্ণনা
firebaseextensions.v1beta.function/location অবস্থান location ক্লাউড ফাংশনগুলি কোন অঞ্চলে স্থাপন করা উচিত?
firebaseextensions.v1beta.function/memory ফাংশন মেমরি memory প্রতিটি ফাংশনের জন্য কত মেগাবাইট মেমরি বরাদ্দ করা উচিত?
firebaseextensions.v1beta.function/timeoutSeconds ফাংশন টাইমআউট timeout সময় শেষ হওয়ার আগে কত সেকেন্ড ফাংশন চালানো উচিত?
firebaseextensions.v1beta.function/vpcConnectorEgressSettings ভিপিসি সংযোগকারী এগ্রেস vpcConnectorEgressSettings একটি VPC সংযোগকারী কনফিগার করা হলে বহির্গামী ট্রাফিক নিয়ন্ত্রণ করে
firebaseextensions.v1beta.function/vpcConnector ভিপিসি সংযোগকারী vpcConnector ক্লাউড ফাংশনগুলিকে নির্দিষ্ট VPC সংযোগকারীর সাথে সংযুক্ত করে৷
firebaseextensions.v1beta.function/minInstances ন্যূনতম ফাংশন দৃষ্টান্ত minInstances একবারে চালানোর জন্য এই ফাংশনের ন্যূনতম সংখ্যক দৃষ্টান্ত
firebaseextensions.v1beta.function/maxInstances সর্বাধিক ফাংশন দৃষ্টান্ত maxInstances একবারে চালানোর জন্য এই ফাংশনের সর্বোচ্চ সংখ্যক দৃষ্টান্ত
firebaseextensions.v1beta.function/ingressSettings প্রবেশের সেটিংস ingressSettings যেখান থেকে ইনকামিং ট্রাফিক গ্রহণ করা হয় তা নিয়ন্ত্রণ করে
firebaseextensions.v1beta.function/labels লেবেল labels এক্সটেনশনের সমস্ত সংস্থানে প্রযোজ্য লেবেল৷
,

প্যারামিটার হল এমন একটি প্রক্রিয়া যার মাধ্যমে একজন ব্যবহারকারী একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করে। প্যারামিটারগুলি একটি এক্সটেনশনের জন্য পরিবেশের ভেরিয়েবলের মতো। প্যারামিটারগুলির মানগুলি হয় স্বয়ংক্রিয়-জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইনস্টলেশন চলাকালীন ব্যবহারকারী দ্বারা নির্দিষ্ট) করা যেতে পারে।

এই প্যারামিটারগুলি আপনার এক্সটেনশনের ফাংশন উত্স কোড, আপনার extension.yaml ফাইল এবং আপনার POSTINSTALL.md ফাইলটিতে উল্লেখ করার জন্য উপলব্ধ। PARAMETER_NAME নামক প্যারামিটারটি কীভাবে রেফারেন্স করবেন তার সিনট্যাক্স এখানে:

  • আপনার ফাংশন উত্স কোডের মধ্যে, params মডিউল (উদাহরণস্বরূপ, params.defineInt(" PARAMETER_NAME ") ) বা process.env. PARAMETER_NAME

  • extension.yaml এবং POSTINSTALL.md মধ্যে, ${param: PARAMETER_NAME } ব্যবহার করুন}

    ইনস্টলেশনের পরে, Firebase কনসোলটি POSTINSTALL.md ফাইলের সামগ্রীগুলি প্রদর্শন করে এবং ইনস্টল করা উদাহরণের জন্য প্রকৃত মানগুলির সাথে কোনও প্যারামিটার রেফারেন্সকে পপুলেট করে।

অটো-জনবহুল পরামিতি

একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ স্বয়ংক্রিয়ভাবে ফায়ারবেস দ্বারা সরবরাহিত বেশ কয়েকটি ডিফল্ট অটো-জনবহুল পরামিতিগুলিতে অ্যাক্সেস থাকে (নীচের সারণীটি দেখুন)। এই প্যারামিটার মানগুলি হয় ফায়ারবেস প্রকল্পের জন্য ডিফল্ট মান ( ডিফল্ট স্টোরেজ বালতিটির মতো) বা তারা এক্সটেনশন-নির্দিষ্ট (এক্সটেনশনের উদাহরণ আইডির মতো)।

সমস্ত অটো-জনবহুল প্যারামিটার মানগুলি অপরিবর্তনীয়। তারা প্রকল্প তৈরি বা এক্সটেনশন ইনস্টলেশন সময় সেট করা হয়।

যদিও ফায়ারবেস এক্সটেনশনের জন্য এই প্যারামিটার মানগুলি অটো-পপুলেট করে, ফায়ারবেস ইনস্টলেশন চলাকালীন ব্যবহারকারীর জন্য সম্পর্কিত পণ্যগুলিকে স্বতঃ-সরবরাহ করে না । এক্সটেনশন ইনস্টল করা ব্যবহারকারী অবশ্যই ইনস্টলেশনের আগে তাদের প্রকল্পে সম্পর্কিত এবং প্রযোজ্য পণ্য (গুলি) সক্ষম করতে হবে। উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনে Cloud Firestore জড়িত থাকে তবে ব্যবহারকারীকে অবশ্যই তাদের প্রকল্পে Cloud Firestore সেট আপ করতে হবে। আমরা আপনার ব্যবহারকারীদের PREINSTALL.md ফাইলে এই প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করার পরামর্শ দিই।

অটো-জনবহুল প্যারামিটারের জন্য রেফারেন্স বর্ণনা প্যারামিটার মান (ফায়ারবেস দ্বারা সরবরাহ করা)
ফায়ারবেস প্রকল্প থেকে ডিফল্ট মান সহ পরামিতি
PROJECT_ID ফায়ারবেস প্রকল্পের জন্য অনন্য শনাক্তকারী যেখানে এক্সটেনশন ইনস্টল করা আছে

সাধারণীকরণ ফর্ম্যাট:
project-id

উদাহরণ মান:
project-123

DATABASE_URL ফায়ারবেস প্রকল্পের ডিফল্ট Realtime Database উদাহরণ ইউআরএল

সাধারণীকরণ ফর্ম্যাট:
https:// project-id -default-rtdb.firebaseio.com
(আমাদের উদাহরণ)
বা
https:// project-id -default-rtdb. region-code .firebasedatabase.app
(অ-মার্কিন উদাহরণ)

উদাহরণ মান:
https://project-123-default-rtdb.firebaseio.com

DATABASE_INSTANCE

ফায়ারবেস প্রকল্পের ডিফল্ট Realtime Database উদাহরণ নাম

সাধারণত, এই মানটি প্রজেক্ট আইডির সমান, বা -default-rtdb শেষ হয়।

সাধারণীকরণ ফর্ম্যাট:
project-id

উদাহরণ মান:
project-123

STORAGE_BUCKET ফায়ারবেস প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বালতি নাম

সাধারণীকরণ ফর্ম্যাট:
PROJECT_ID .firebasestorage.app

উদাহরণ মান:
project-123.firebasestorage.app

এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার
EXT_INSTANCE_ID

ইনস্টল এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী

এই মানটি extension.yaml ফাইলে নির্দিষ্ট করা name ক্ষেত্র থেকে উত্পন্ন হয়।

1 ম ইনস্টলড উদাহরণের জন্য সাধারণ ফর্ম্যাট (ফায়ারবেস দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশন চলাকালীন ব্যবহারকারী-সংশোধন করা যায় না ):
name-from-extension.yaml

উদাহরণ মান:
my-awesome-extension


২ য়-ইনস্টলড উদাহরণ এবং তারপরে সাধারণ ফর্ম্যাট (ফায়ারবেস দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশন চলাকালীন ব্যবহারকারী-সংশোধিত হতে পারে ):
name-from-extension.yaml - 4-digit-alphanumeric-hash

উদাহরণ মান:
my-awesome-extension-6m31

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

কোনও ব্যবহারকারীকে কোনও এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশন চলাকালীন প্যারামিটারের মানগুলি নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির জন্য অনুরোধ করার জন্য, আপনি আপনার extension.yaml ফাইলের params বিভাগে প্রম্পটগুলি সেট আপ করুন।

এখানে একটি উদাহরণ params বিভাগ রয়েছে, তারপরে সমস্ত উপলভ্য প্যারামিটার ক্ষেত্রগুলি বর্ণনা করে একটি টেবিল।

# extension.yaml
...

# Parameters (environment variables) for which the user specifies values during installation
params:
  - param: DB_PATH
    label: Realtime Database path
    description: >-
      What is the Realtime Database path where you will write new text
      for sentiment analysis?
    type: string
    validationRegex: ^\S+$
    validationErrorMessage: Realtime Database path cannot contain spaces.
    example: path/to/posts
    required: true

  - param: TEXT_KEY
    label: Key for text
    description: What is the name of the key that will contain text to be analyzed?
    type: string
    default: textToAnalyze
    required: true

আপনার extension.yaml ফাইলের params বিভাগে, ব্যবহারকারী-কনফিগার করা প্যারামিটারটি সংজ্ঞায়িত করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন:

মাঠ টাইপ বর্ণনা
param
(প্রয়োজনীয়)
স্ট্রিং প্যারামিটারের নাম
label
(প্রয়োজনীয়)
স্ট্রিং

প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ

ব্যবহারকারী যখন প্যারামিটারের মানের জন্য অনুরোধ জানানো হয় তখন প্রদর্শিত হয়

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

প্যারামিটারের জন্য বিশদ বিবরণ

ব্যবহারকারী যখন প্যারামিটারের মানের জন্য অনুরোধ জানানো হয় তখন প্রদর্শিত হয়

মার্কডাউন সমর্থন করে

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

ব্যবহারকারী কীভাবে প্যারামিটারের মান সেট করে তার জন্য ইনপুট প্রক্রিয়া (উদাহরণস্বরূপ, সরাসরি পাঠ্য প্রবেশ করুন বা ড্রপডাউন তালিকা থেকে নির্বাচন করুন)

বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:

  • string : ফ্রি-ফর্ম পাঠ্য প্রবেশের অনুমতি দেয় (আপনার validationRegex দ্বারা সীমাবদ্ধ হিসাবে)
  • select : বিকল্পগুলির একটি প্রাক-সংজ্ঞায়িত তালিকা থেকে একটি প্রবেশের নির্বাচনের অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • multiSelect : বিকল্পগুলির একটি প্রাক-সংজ্ঞায়িত তালিকা থেকে এক বা একাধিক এন্ট্রি নির্বাচনের অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • selectResource : ব্যবহারকারীর প্রকল্প থেকে নির্দিষ্ট ধরণের ফায়ারবেস রিসোর্স (যেমন Cloud Storage বালতি) নির্বাচনের অনুমতি দেয়।

    আপনি যখন এই ধরণের একটি প্যারামিটার নির্দিষ্ট করেন, ব্যবহারকারীরা ইনস্টলেশন ইউআইতে আরও ব্যবহারকারী-বান্ধব নির্বাচন উইজেট পাবেন; এই কারণে, যখনই সম্ভব selectResource প্যারামিটারগুলি ব্যবহার করুন।

    আপনি যদি এই মানটি নির্দিষ্ট করে থাকেন তবে আপনাকে অবশ্যই resourceType ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।

  • secret : সংবেদনশীল স্ট্রিংগুলির সঞ্চয় করার অনুমতি দেয়, যেমন তৃতীয় পক্ষের পরিষেবাগুলির জন্য এপিআই কীগুলি। এই মানগুলি ক্লাউড সিক্রেট ম্যানেজারে সংরক্ষণ করা হবে।

    ক্লাউড সিক্রেট ম্যানেজার একটি অর্থ প্রদানের পরিষেবা, যার ব্যবহারের ফলে আপনার এক্সটেনশন ইনস্টল করা ব্যবহারকারীদের জন্য চার্জ হতে পারে। আপনি যদি secret প্যারামিটারের ধরণটি ব্যবহার করেন তবে আপনার এক্সটেনশনে ক্লাউড সিক্রেট ম্যানেজার ব্যবহার করে এমন আপনার প্রিনস্টল ফাইলটিতে নথিভুক্ত করতে ভুলবেন না।

যদি এই ক্ষেত্রটি বাদ দেওয়া হয় তবে প্যারামিটারটি string type ডিফল্ট হয়।

options
(যদি প্যারামিটারের type select বা multiSelect হয় তবে প্রয়োজনীয়)
তালিকা

যে মানগুলি থেকে ব্যবহারকারী নির্বাচন করতে পারেন তার তালিকা

options ক্ষেত্রের মধ্যে label এবং value ক্ষেত্রগুলি অন্তর্ভুক্ত করুন:

  • label (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের সংক্ষিপ্ত বিবরণ
  • value (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের প্রকৃত মান

options ক্ষেত্রের জন্য value ক্ষেত্রটি প্রয়োজনীয়।
যদি label বাদ দেওয়া হয় তবে তালিকা বিকল্পটি value প্রদর্শন করতে ডিফল্ট হয়।

options:
  - label:
    value:
  - label:
    value:
  - label:
    value:
resourceType
(যদি প্যারামিটারের type selectResource হয় তবে প্রয়োজনীয়)
স্ট্রিং

ব্যবহারকারীকে নির্বাচন করতে অনুরোধ জানাতে ফায়ারবেস রিসোর্সের ধরণ। বর্তমানে, কেবল Cloud Storage বালতিগুলি রিসোর্স নির্বাচকদের সমর্থন করে:

সম্পদের ধরন টাইপ আইডি
Cloud Storage বালতি storage.googleapis.com/Bucket

অজানা resourceType মানগুলি উপেক্ষা করা হবে এবং ইউআই একটি ফ্রি-ফর্ম string ইনপুট ক্ষেত্র হিসাবে প্যারামিটারটি রেন্ডার করবে।

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

প্যারামিটারের জন্য উদাহরণ মান

validationRegex
(ঐচ্ছিক)
(কেবল তখনই প্রযোজ্য যখন প্যারামিটারের type string হয়)
স্ট্রিং

প্যারামিটারের ব্যবহারকারী-কনফিগার করা মানের বৈধতার জন্য রেজেক্স স্ট্রিং

রেজেক্স জিও লাইব্রেরি ব্যবহার করে সংকলিত হয়েছে: আরই 2

বৈধতা সম্পর্কে বিশদগুলির জন্য, নীচে বৈধতা এবং ত্রুটি বার্তাগুলি দেখুন।

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

validationRegex ব্যর্থ হলে প্রদর্শন করতে ত্রুটি বার্তা

ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদের জন্য, নীচে বৈধতা এবং ত্রুটি বার্তাগুলি দেখুন।

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

প্যারামিটারের জন্য ডিফল্ট মান যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা ছেড়ে দেয়

যদি প্রযোজ্য হয় তবে আপনি default মানের জন্য একটি অটো-জনবহুল প্যারামিটার মান নির্দিষ্ট করতে পারেন (উদাহরণস্বরূপ, পুনরায় আকার চিত্রের এক্সটেনশনের IMG_BUCKET প্যারামিটারটি দেখুন)।

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

ব্যবহারকারী যখন প্যারামিটারের মানের জন্য অনুরোধ জানানো হয় তখন তারা খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে

যদি required বাদ দেওয়া হয় তবে এই মানটি true ডিফল্ট করে (এটি একটি প্রয়োজনীয় প্যারামিটার)।

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

ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে )

যদি immutable বাদ দেওয়া হয় তবে এই মানটি false হিসাবে ডিফল্ট হয়।

দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের মোতায়েন করা ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটারটি সংজ্ঞায়িত করেন তবে আপনার এই immutable ক্ষেত্রটিকে তার পরম বস্তুর মধ্যে অন্তর্ভুক্ত করা উচিত।

ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তাপ্রেরণ

আপনি যখন string type সহ একটি প্যারামিটার সেট আপ করেন, আপনাকে প্যারামিটারের validationRegex ক্ষেত্রের মাধ্যমে উপযুক্ত Regex বৈধতা সংজ্ঞায়িত করতে হবে।

এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হ'ল একটি ডাটাবেস পাথ বা Cloud Storage বালতি। সচেতন হন যে ইনস্টল, পুনর্গঠন বা আপডেটের সময় Extensions পরিষেবাটি প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলি বৈধ করে না :

  • নির্দিষ্ট ডাটাবেস বা Cloud Storage বালতিটি ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
  • নির্দিষ্ট ডাটাবেস পাথ ব্যবহারকারীর ডাটাবেসের মধ্যে বিদ্যমান কিনা

যাইহোক, যখন এক্সটেনশনটি আসলে তার সংস্থানগুলি স্থাপন করে, Firebase কনসোল বা Firebase সিএলআই যদি রেফারেন্সযুক্ত ডাটাবেস বা Cloud Storage বালতিটি এখনও প্রকল্পে সেট আপ না করা হয় তবে একটি ত্রুটি বার্তা প্রদর্শন করবে।

আমরা দৃ strongly ়ভাবে সুপারিশ করি যে আপনি এই প্রয়োজনীয়তাগুলি সম্পর্কে PREINSTALL ফাইলে ব্যবহারকারীদের অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশনটি ইনস্টল করে, এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশার মতো কাজ করে।

সিস্টেম পরামিতি

সিস্টেম পরামিতিগুলি একটি এক্সটেনশনের সংস্থানগুলির প্রাথমিক কনফিগারেশন নিয়ন্ত্রণ করে। যেহেতু এগুলি রিসোর্স কনফিগারেশন নিয়ন্ত্রণ করার জন্য বোঝানো হয়েছে, তাই এগুলি আপনার ফাংশন কোডের মধ্যে থেকে পরিবেশের ভেরিয়েবল হিসাবে অ্যাক্সেসযোগ্য নয়।

extension.yaml আপনাকে সাধারণত এই পরামিতিগুলির জন্য কিছু ঘোষণা করার প্রয়োজন হয় না y আইএএমএল। এগুলি প্রতিটি এক্সটেনশন উদাহরণের জন্য স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা আপনার এক্সটেনশনটি ইনস্টল করার সময় কাস্টম মান নির্ধারণের সুযোগ পায়।

তবে, যদি আপনার এক্সটেনশনে বিশেষ সংস্থান প্রয়োজনীয়তা থাকে তবে আপনি extension.yaml প্রতি-রিসোর্স স্তরে নির্দিষ্ট মান সেট করতে পারেন। এই প্রতি-রিসোর্স কনফিগারেশন সেটিংস ব্যবহারকারীর এক্সটেনশন উদাহরণ-বিস্তৃত সেটিংসকে ওভাররাইড করবে। যেমন:

resources:
- name: high_memory_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function needs at least 1GB of memory!
  properties:
    httpsTrigger: {}
    runtime: nodejs18
    availableMemoryMb: 1024
- name: normal_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function has no special memory requirements. It will use the
    default value, or the value of `firebaseextension.v1beta.function/memory`
  properties:
    httpsTrigger: {}
    runtime: nodejs18

উপলভ্য সিস্টেমের প্যারামগুলি হ'ল:

নাম লেবেল (মানব বান্ধব) properties সংশ্লিষ্ট ক্ষেত্র বর্ণনা
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/অবস্থান অবস্থান location কোন অঞ্চলে ক্লাউড ফাংশনগুলি স্থাপন করা উচিত?
ফায়ারব্যাসিএক্সটেনশনস.ভি 1 বিটা.ফানশন/মেমরি ফাংশন মেমরি memory প্রতিটি ফাংশনে কতগুলি মেগাবাইট মেমরি বরাদ্দ করা উচিত?
ফায়ারব্যাসিএক্সটেনশনস.ভি 1 বিটা.ফানশন/টাইমআউটসেকেন্ডস ফাংশন সময়সীমা timeout সময় শেষ হওয়ার আগে ফাংশনগুলি কত সেকেন্ড চালানো উচিত?
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/ভিপিসি কনটোরগ্রেসসেসটিংস ভিপিসি সংযোগকারী এগ্র্রেস vpcConnectorEgressSettings ভিপিসি সংযোগকারী কনফিগার করা হলে বহির্গামী ট্র্যাফিক নিয়ন্ত্রণ করে
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/ভিপিসকনেক্টর ভিপিসি সংযোগকারী vpcConnector নির্দিষ্ট ভিপিসি সংযোজকের সাথে ক্লাউড ফাংশনগুলিকে সংযুক্ত করে।
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/মিনিনস্ট্যান্স ন্যূনতম ফাংশন উদাহরণ minInstances এই ফাংশনের ন্যূনতম সংখ্যা একবারে চালানোর জন্য
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/ম্যাক্সিনস্ট্যান্স সর্বাধিক ফাংশন উদাহরণ maxInstances এই ফাংশনের সর্বাধিক সংখ্যা একবারে চালানোর জন্য
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/ইনগ্রেসসটিংস ইনগ্রেস সেটিংস ingressSettings নিয়ন্ত্রণগুলি যেখানে আগত ট্র্যাফিক গ্রহণ করা হয়
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/লেবেল লেবেল labels এক্সটেনশনে সমস্ত সংস্থানগুলিতে প্রয়োগ করার জন্য লেবেলগুলি