প্রতিটি এক্সটেনশনের অবশ্যই ডকুমেন্টেশন থাকতে হবে, যা ব্যবহারকারীদের শেখায় এক্সটেনশনটি কী কাজ করে এবং কীভাবে এটি ব্যবহার করতে হয়।
ন্যূনতম ও আবশ্যক ডকুমেন্টেশন হলো এই তিনটি মার্কডাউন ফাইলের সেট:
-
PREINSTALL.md -
POSTINSTALL.md -
CHANGELOG.md
এছাড়াও, আপনার নিম্নলিখিতগুলি তৈরি করার কথাও বিবেচনা করা উচিত:
- এক্সটেনশনটির পাবলিক রিপোজিটরির জন্য একটি
READMEফাইল। - আপনার নিজের ওয়েবসাইটে বিস্তারিত টিউটোরিয়াল, গাইড এবং রেফারেন্স প্রকাশ করুন এবং আপনার
PREINSTALL.mdএ সেগুলোর লিঙ্ক যুক্ত করুন।
কিছু সেরা অনুশীলন এবং প্রচলিত শব্দচয়ন ও কাঠামো শেখার জন্য, আমরা অফিসিয়াল Firebase এক্সটেনশনগুলোর সাথে উপলব্ধ ফাইলগুলো পর্যালোচনা করার পরামর্শ দিই।
একটি README তৈরি করা
আপনার এক্সটেনশন ডিরেক্টরিতে ঐচ্ছিকভাবে একটি README ফাইল থাকতে পারে। উল্লেখ্য যে, ` firebase ext:dev:init কমান্ডটি আপনার জন্য স্বয়ংক্রিয়ভাবে এটি তৈরি করে না।
তবে, Firebase CLI আপনার extension.yaml ফাইল এবং PREINSTALL.md ফাইল থেকে কন্টেন্ট নিয়ে স্বয়ংক্রিয়ভাবে একটি README ফাইল তৈরি করার জন্য নিম্নলিখিত সুবিধাজনক কমান্ডটি সমর্থন করে:
firebase ext:info ./path/to/extension --markdown > README.md
অফিসিয়াল Firebase এক্সটেনশনগুলোর সমস্ত README ফাইল এই কমান্ডটি ব্যবহার করে তৈরি করা হয়।
ইনস্টলেশন তথ্য যোগ করুন
README লেখার বা তৈরি করার পর, তাতে ইনস্টলেশনের তথ্য যোগ করুন। আপনি নিম্নলিখিত কোড স্নিপেটটি একটি টেমপ্লেট হিসাবে ব্যবহার করতে পারেন:
--- ## 🧩 Install this extension ### Console [][install-link] [install-link]: https://console.firebase.google.com/project/_/extensions/install?ref=publisher_id/extension_name ### Firebase CLI ```bash firebase ext:install publisher_id/extension_name --project=[your-project-id] ``` > Learn more about installing extensions in the Firebase Extensions documentation: > [console](https://firebase.google.com/docs/extensions/install-extensions?platform=console), > [CLI](https://firebase.google.com/docs/extensions/install-extensions?platform=cli) ---
একটি PREINSTALL ফাইল লেখা
PREINSTALL ফাইলটি হলো আপনার এক্সটেনশনের একটি সংক্ষিপ্ত বিবরণ, যা এক ধরনের 'মার্কেটিং' পেজ।
এই ফাইলে কী বিষয়বস্তু আছে?
- আপনার এক্সটেনশনের কার্যকারিতার বিশদ বিবরণ
- পূর্বশর্তগুলির তালিকা, যেমন ডাটাবেস সেটআপ বা গুগল-বহির্ভূত কোনো পরিষেবাতে প্রবেশাধিকার ( উদাহরণ )
- ইনস্টলেশনের পূর্ববর্তী কাজগুলোর সংক্ষিপ্ত বিবরণ এবং সেগুলোর নির্দেশাবলী।
- ইনস্টলেশন-পরবর্তী যেকোনো কাজের সংক্ষিপ্ত বিবরণ ( উদাহরণ ) (বিস্তারিত নির্দেশাবলী
POSTINSTALLঅংশে দিতে হবে) - বিলিং সংক্রান্ত যেকোনো প্রভাবের সংক্ষিপ্ত বিবরণ ( প্রচলিত লেখা দিয়ে শুরু করুন)
এই বিষয়বস্তুটি ব্যবহারকারীর কাছে কোথায় প্রদর্শিত হয়?
ফায়ারবেস কনসোল">
ফায়ারবেস কনসোল">
- extensions.dev- এ এক্সটেনশনটির পেজে।
- আপনার এক্সটেনশনের সোর্স কোড রিপোজিটরি (এক্সটেনশন ডিরেক্টরির ভিতরে)
- এক্সটেনশনটির README-এর অংশ হিসেবে (যদি আপনি Firebase CLI ব্যবহার করেন)
)--markdown > README.mdফ্ল্যাগ
PREINSTALL ফাইলগুলো এক্সটেনশনের প্যারামিটার ভ্যালুগুলো অ্যাক্সেস করতে পারে না, তাই প্যারামিটার রেফারেন্সগুলো প্রকৃত ভ্যালুসহ রেন্ডার হবে বলে আশা করা উচিত নয়।
কিছু সেরা অনুশীলন কী কী?
- সম্ভব হলে
PREINSTALLফাইলের সম্পূর্ণ বিষয়বস্তু এক পৃষ্ঠার মধ্যে রাখুন। - এক্সটেনশনটি ইনস্টল করার আগে একজন ব্যবহারকারীর যতটুকু জানা একান্ত প্রয়োজন, ঠিক ততটুকু বিস্তারিত তথ্য প্রদান করুন।
-
POSTINSTALLফাইলে বা অন্যান্য সম্পূরক ফাইলে বিস্তারিত নির্দেশাবলী রাখুন। - এক্সটেনশনটিকে সমর্থন করার জন্য আপনি অন্য কোনো টুল বা স্ক্রিপ্ট প্রদান করলে, তা সংক্ষেপে উল্লেখ করুন।
আপনার এক্সটেনশনের জন্য প্রযোজ্য হলে, আমরা নিম্নলিখিত বয়লারপ্লেট টেক্সট যতটা সম্ভব ব্যবহার করার পরামর্শ দিই। আমরা কিছু উদাহরণ দিয়েছি, কিন্তু সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো গুগল এবং নন-গুগল উভয় বিলযোগ্য পরিষেবা তালিকাভুক্ত করা নিশ্চিত করা।
পণ্যের সঠিক মূল্য সংক্রান্ত তথ্য জানতে আপনি নিম্নলিখিত উৎসগুলো ব্যবহার করতে পারেন:
সমস্ত এক্সটেনশনের ক্ষেত্রে, আপনার ব্যবহারকারীদের বিলিং সংক্রান্ত বিষয়গুলো বুঝতে সাহায্য করার জন্য এই অংশটি অন্তর্ভুক্ত করুন:
Billing
This extension uses other Firebase or Google Cloud services which may have
associated charges:
* <list Google services / products that your extension uses>
* <list Firebase services that your extension uses>
* Cloud Secret Manager <if the extension uses secret params>
* Cloud Functions
When you use Firebase Extensions, you're only charged for the underlying
resources that you use. A paid-tier billing plan is only required if the
extension uses a service that requires a paid-tier plan, for example calling to
a Google Cloud API or making outbound network requests to non-Google services.
All Firebase services offer a no-cost tier of usage.
[Learn more about Firebase billing.](https://firebase.google.com/pricing)
<Applicable info about billing implications for non-Google services, such as:>
Usage of this extension also requires you to have a <non-Google-service> account.
You are responsible for any associated costs with your usage of <non-Google-service>.
একটি POSTINSTALL ফাইল লেখা
POSTINSTALL ফাইলটি হলো আপনার এক্সটেনশনের ইনস্টলেশন-পরবর্তী বিস্তারিত নির্দেশনামূলক পৃষ্ঠা।
এই ফাইলে কী বিষয়বস্তু আছে?
- ইনস্টলেশন-পরবর্তী প্রয়োজনীয় কাজগুলোর জন্য বিস্তারিত নির্দেশাবলী, যেমন ফায়ারবেস নিরাপত্তা নিয়ম সেট আপ করা বা ক্লায়েন্ট-সাইড কোড যোগ করা ( উদাহরণ )।
- ইনস্টল করা এক্সটেনশনটি তাৎক্ষণিকভাবে ব্যবহার করে দেখার জন্য সাধারণ নির্দেশাবলী (উদাহরণস্বরূপ, "কনসোলে যান, তারপর এটি করুন")।
- এক্সটেনশনটি কীভাবে চালু করতে হয় সে সম্পর্কে প্রাথমিক তথ্য, বিশেষ করে HTTP অনুরোধ-চালিত এক্সটেনশনগুলির ক্ষেত্রে।
- ইনস্টল করা এক্সটেনশনটি কীভাবে মনিটর করবেন তার সংক্ষিপ্ত নির্দেশাবলী ( প্রচলিত লেখা দিয়ে শুরু করুন)
এই বিষয়বস্তুটি ব্যবহারকারীর কাছে কোথায় প্রদর্শিত হয়?
ফায়ারবেস কনসোল">
ফায়ারবেস কনসোল">
কোনো ব্যবহারকারী আপনার এক্সটেনশনটি ইনস্টল করার পর Firebase কনসোলে (ইনস্টল করা এক্সটেনশনটির ডিটেইল কার্ডে)
- একটি বাস্তব প্রজেক্টে আপনার এক্সটেনশনটি ইনস্টল করে
POSTINSTALLকন্টেন্টের ডিসপ্লে পর্যালোচনা করে নিন।
- একটি বাস্তব প্রজেক্টে আপনার এক্সটেনশনটি ইনস্টল করে
আপনার এক্সটেনশনের সোর্স কোড রিপোজিটরি (এক্সটেনশন ডিরেক্টরির ভিতরে)
POSTINSTALL ফাইলগুলো এক্সটেনশনের প্যারামিটার ভ্যালু এবং বিভিন্ন ফাংশন-সম্পর্কিত ভেরিয়েবল অ্যাক্সেস করতে পারে। যখন Firebase কনসোলে POSTINSTALL কন্টেন্ট প্রদর্শিত হয়, তখন প্যারামিটার বা ভেরিয়েবল রেফারেন্সের পরিবর্তে প্রকৃত ভ্যালুগুলো দেখানো হয়। আপনার POSTINSTALL ফাইলে কীভাবে প্যারামিটার এবং ভেরিয়েবল রেফারেন্স করবেন, সে সম্পর্কে নিচে আরও জানুন।
কিছু সেরা অনুশীলন কী কী?
-
POSTINSTALLফাইলের সম্পূর্ণ বিষয়বস্তু সংক্ষিপ্ত কিন্তু বর্ণনামূলক রাখুন। - স্বতন্ত্র কাজ বা ধারণাগুলোকে আলাদা করার জন্য শিরোনাম ব্যবহার করে বিষয়বস্তুকে বিভিন্ন ভাগে ভাগ করুন।
- আপনার ওয়েবসাইটে ( উদাহরণ ) অথবা এক্সটেনশন রিপোজিটরির মধ্যে সম্পূরক মার্কডাউন ফাইলে ( উদাহরণ ) কোনো নির্দিষ্ট ওয়ার্কফ্লো বা টাস্কের জন্য বিস্তারিত নির্দেশাবলী প্রকাশ করার কথা বিবেচনা করুন।
- প্যারামিটার এবং ফাংশন-সম্পর্কিত ভেরিয়েবলগুলোর রেফারেন্স দিন , যাতে ব্যবহারকারী নির্দেশাবলীর পরিপ্রেক্ষিতে সেগুলোর কনফিগার করা মান দেখতে পায়।
প্যারামিটার এবং ভেরিয়েবল উল্লেখ করা
ইনস্টলেশনের পরে, Firebase কনসোল এক্সটেনশনটির POSTINSTALL ফাইলের বিষয়বস্তু প্রদর্শন করে। যদি আপনি আপনার POSTINSTALL ফাইলে প্যারামিটার এবং ফাংশন-সম্পর্কিত ভেরিয়েবল (নীচের সারণি দেখুন) উল্লেখ করেন, তাহলে কনসোল ইনস্টল করা ইনস্ট্যান্সের প্রকৃত মান দিয়ে এই রেফারেন্সগুলি পূরণ করে।
নিম্নলিখিত সিনট্যাক্স ব্যবহার করে POSTINSTALL ফাইলে কনফিগার করা প্যারামিটার মানগুলি অ্যাক্সেস করুন:${param: PARAMETER_NAME }
আপনি শুধুমাত্র আপনার POSTINSTALL ফাইলে নিম্নলিখিত ফাংশন-সম্পর্কিত ভেরিয়েবলগুলো উল্লেখ করতে পারেন। Firebase এই ভেরিয়েবলগুলো সমর্থন করে, যাতে আপনি ইনস্টলেশন-পরবর্তী সময়ে আপনার ব্যবহারকারীদের আরও সহজে নির্দেশনা দিতে পারেন। এগুলো শুধুমাত্র POSTINSTALL ফাইলে ব্যবহারের জন্য উপলব্ধ, কারণ ইনস্টলেশনের আগে এই ভেরিয়েবলগুলোর মান পাওয়া যায় না।
এই টেবিলে, function-name হলো extension.yaml অন্তর্গত ফাংশনের রিসোর্স অবজেক্টের name ফিল্ডের মান।
| ফাংশন-সম্পর্কিত ভেরিয়েবলের রেফারেন্স | বর্ণনা | পরিবর্তনশীল মান (এক্সটেনশন ইনস্টলেশনের পরে ফায়ারবেস দ্বারা স্বয়ংক্রিয়ভাবে পূরণ করা হয়) |
|---|---|---|
${function: function-name .location} | ||
| যেখানে ফাংশনটি স্থাপন করা হয়েছে | উদাহরণ মান:us-central1 | |
${function: function-name .name} | ||
| চূড়ান্তভাবে ডেপ্লয় করা ফাংশনের নাম, যার মধ্যে এক্সটেনশনটির ইনস্ট্যান্স আইডি অন্তর্ভুক্ত থাকে। | সাধারণ বিন্যাস: উদাহরণ মান: | |
${function: function-name .url} (শুধুমাত্র HTTP ফাংশনের জন্য প্রযোজ্য) | ||
| চূড়ান্তভাবে ডেপ্লয় করা ফাংশনের ইউআরএল, যেখানে ক্লায়েন্ট কোড HTTP রিকোয়েস্ট পাঠাতে পারে। | সাধারণ বিন্যাস: উদাহরণ মান: | |
আপনার এক্সটেনশনের জন্য প্রযোজ্য ক্ষেত্রে, আমরা নিম্নলিখিত বয়লারপ্লেট টেক্সট যতটা সম্ভব ব্যবহার করার পরামর্শ দিই।
আপনার ব্যবহারকারীদের তাদের ইনস্টল করা এক্সটেনশন নিরীক্ষণ করতে সাহায্য করার জন্য, সমস্ত এক্সটেনশনের ক্ষেত্রে নিম্নলিখিত বিভাগটি অন্তর্ভুক্ত করুন:
Monitoring
As a best practice, you can
[monitor the activity](https://firebase.google.com/docs/extensions/manage-installed-extensions_community#monitor)
of your installed extension, including checks on its health, usage, and logs.
একটি এক্সটেনশন কীভাবে চালু করতে হয় তার নথিভুক্তকরণ
আপনার এক্সটেনশনের ইউজার ডকুমেন্টেশনে, আপনার এক্সটেনশনটি কীভাবে চালু করতে হবে সে সম্পর্কে ব্যবহারকারীদের নির্দেশ দিতে হবে। এই নির্দেশাবলী আপনার প্রয়োজন অনুযায়ী বিস্তারিত হতে পারে, তবে একটি POSTINSTALL ফাইল লেখার সেরা পদ্ধতিগুলো মনে রাখবেন। এই নির্দেশাবলী কীভাবে প্রদান করবেন সে সম্পর্কে ধারণা পেতে, নিচের যে অংশটি আপনার এক্সটেনশনের জন্য প্রযোজ্য, সেটি বিস্তারিত দেখুন।
সংশ্লিষ্ট পণ্যগুলোর ওপর নির্ভর করে, আপনার ব্যবহারকারীরা বিভিন্ন উপায়ে একটি ব্যাকগ্রাউন্ড ইভেন্ট-ট্রিগারড এক্সটেনশন চালু করতে পারেন।
সরাসরি কনসোলে পরিবর্তন করুন
আপনি আপনার ব্যবহারকারীদের সরাসরি Firebase কনসোলে এক্সটেনশন চালু করার মতো পরিবর্তন করতে নির্দেশ দিতে পারেন, বিশেষ করে আপনার এক্সটেনশনের প্রাথমিক পরীক্ষার জন্য। উদাহরণস্বরূপ, ধরুন যখনই একজন নতুন Firebase Authentication ব্যবহারকারী তৈরি করা হয়, আপনার এক্সটেনশনটি একটি নতুন Cloud Firestore ডকুমেন্ট তৈরি করে। আপনি আপনার ব্যবহারকারীদের কনসোলে ম্যানুয়ালি একজন নতুন Authentication ব্যবহারকারী যোগ করে আপনার এক্সটেনশনের একটি ইনস্টল করা ইনস্ট্যান্স পরীক্ষা করতে নির্দেশ দিতে পারেন। এরপর তারা কনসোলের Cloud Firestore বিভাগে তৈরি হওয়া নতুন ডকুমেন্টটি দেখতে পাবে।
ক্লায়েন্ট-সাইড কোড যোগ করুন
প্রযোজ্য ক্ষেত্রে, আপনার এক্সটেনশনটি চালু করার জন্য কীভাবে ক্লায়েন্ট-সাইড কোড যোগ করতে হবে, সে বিষয়েও আপনি আপনার ব্যবহারকারীদের নির্দেশনা দিতে পারেন। ব্যবহারকারীদের যে API-গুলো ব্যবহার করতে হবে, সেগুলোর অফিশিয়াল ডকুমেন্টেশনের দিকে তাদের নির্দেশ করা উচিত। আপনার ব্যবহারকারীদের তাদের অ্যাপে এক্সটেনশনটি একীভূত করতে সাহায্য করার জন্য আপনি নমুনা অ্যাপ বা কম্পাইল করা ক্লায়েন্ট স্যাম্পলও অন্তর্ভুক্ত করতে পারেন (উদাহরণস্বরূপ ডিস্ট্রিবিউটেড কাউন্টার এক্সটেনশনটি দেখুন)।
যাতে আপনার ব্যবহারকারীরা একটি HTTP অনুরোধ-চালিত ফাংশন (এবং ফলস্বরূপ এক্সটেনশনটি) চালু করতে পারে, সেজন্য আপনাকে তাদেরকে ডেপ্লয় করা ফাংশনটির নাম অথবা এর URL প্রদান করতে হবে।
চূড়ান্তভাবে ডেপ্লয় করা ফাংশনের নামটি, extension.yaml মধ্যে থাকা ফাংশনের রিসোর্স অবজেক্টে আপনার নির্দিষ্ট করা name মতো নয়। একটি প্রোজেক্টে একই এক্সটেনশনের একাধিক ইনস্টলের সুবিধা দেওয়ার জন্য, Firebase ফাংশনটির নাম এই ফরম্যাটে পরিবর্তন করে:ext- extension-instance-id - function-name .
আপনার এক্সটেনশনের POSTINSTALL ফাইলে অন্তর্ভুক্ত করার জন্য নিম্নলিখিত বুলেট পয়েন্টগুলো হলো প্রস্তাবিত বয়লারপ্লেট টেক্সট। ইনস্টলেশনের পরে, Firebase কনসোল POSTINSTALL ফাইলের বিষয়বস্তু প্রদর্শন করে এবং ইনস্টল করা ইনস্ট্যান্সের জন্য প্রকৃত কনফিগার করা মান দিয়ে এই রেফারেন্সগুলো পূরণ করে। উদাহরণস্বরূপ, যদি আপনি yourFunction নামে একটি ফাংশন সংজ্ঞায়িত করে থাকেন, তাহলে আপনি নিম্নলিখিতটি (প্রযোজ্য ক্ষেত্রে) অন্তর্ভুক্ত করতে পারেন:
HTTP
onRequestফাংশনগুলির জন্যTo trigger this extension, make a request to or visit the following URL: **`${function:yourFunction.url}`**.HTTP কলযোগ্য (
onCall) ফাংশনগুলির জন্যThis extension is implemented as an HTTP callable function. To call it from your client app, follow the instructions in the [callable functions documentation](https://firebase.google.com/docs/functions/callable#call_the_function). The name of the function to call is **`${function:yourFunction.name}`**, and its region is **`${function:yourFunction.location}`**.
চেঞ্জলগ ফাইল লেখা
এই ফাইলে কী বিষয়বস্তু আছে?
প্রতিটি এক্সটেনশনের একটি CHANGELOG.md ফাইল থাকতে হবে, যেখানে আপনার প্রকাশিত প্রতিটি নতুন সংস্করণে অন্তর্ভুক্ত পরিবর্তনগুলো নথিভুক্ত করা থাকবে। প্রতিটি সংস্করণকে একটি লেভেল ২ হেডারের ( ## ) অধীনে রাখুন; অন্যথায়, আপনি আপনার পছন্দমতো যেকোনো মার্কডাউন ফরম্যাটিং ব্যবহার করতে পারেন।
নিম্নলিখিত উদাহরণটি অফিসিয়াল এক্সটেনশনগুলোর একটি থেকে নেওয়া একটি অংশ:
## Version 0.1.3 feature - Support deletion of directories (issue #148). ## Version 0.1.2 feature - Add a new param for recursively deleting subcollections in Cloud Firestore (issue #14). fixed - Fixed "cold start" errors experienced when the extension runs after a period of inactivity (issue #48). ## Version 0.1.1 Initial release of the _Delete User Data_ extension.
এই বিষয়বস্তুটি ব্যবহারকারীর কাছে কোথায় প্রদর্শিত হয়?
- যখন ব্যবহারকারীরা আপনার এক্সটেনশনের নতুন সংস্করণে আপগ্রেড করেন, তখন Firebase কনসোল এবং CLI-তে শুধুমাত্র সেই পরিবর্তনগুলিই প্রদর্শিত হয় যা ব্যবহারকারী আপগ্রেডটি সম্পন্ন করলে কার্যকর হবে Firebase
- আপনার এক্সটেনশনের সোর্স কোড রিপো (এক্সটেনশন ডিরেক্টরির ভিতরে)।