প্রতিটি এক্সটেনশনে এমন ডকুমেন্টেশন থাকতে হবে যা ব্যবহারকারীদের এক্সটেনশনটি কী করে এবং কীভাবে এটি ব্যবহার করতে হয় তা শেখায়।
সর্বনিম্ন, প্রয়োজনীয়, ডকুমেন্টেশন হল তিনটি মার্কডাউন ফাইলের এই সেট:
-
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ফাইল বা অন্যান্য সম্পূরক ফাইলে বিস্তারিত নির্দেশাবলী লিখুন। - এক্সটেনশনটি সমর্থন করার জন্য আপনি অন্য কোন সরঞ্জাম বা স্ক্রিপ্ট সরবরাহ করেন কিনা তা সংক্ষেপে উল্লেখ করুন।
আপনার এক্সটেনশনের জন্য আমরা যতটা সম্ভব নিম্নলিখিত বয়লারপ্লেট টেক্সট ব্যবহার করার পরামর্শ দিচ্ছি। আমরা কিছু উদাহরণ দিয়েছি, তবে সবচেয়ে গুরুত্বপূর্ণ বিষয় হল নিশ্চিত করা যে সমস্ত Google এবং নন-Google বিল করা পরিষেবা তালিকাভুক্ত রয়েছে।
সঠিক পণ্যের মূল্য নির্ধারণের বিবরণ পেতে আপনি নিম্নলিখিত সংস্থানগুলি ব্যবহার করতে পারেন:
সমস্ত এক্সটেনশনের জন্য, আপনার ব্যবহারকারীদের বিলিংয়ের প্রভাব বুঝতে সাহায্য করার জন্য এই বিভাগটি অন্তর্ভুক্ত করুন:
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 ফাইলটি হল আপনার এক্সটেনশনের ইনস্টলেশন-পরবর্তী বিস্তারিত নির্দেশিকা পৃষ্ঠা।
এই ফাইলটিতে কী কী বিষয়বস্তু আছে?
- ইনস্টলেশন-পরবর্তী যেকোনো প্রয়োজনীয় কাজের জন্য বিস্তারিত নির্দেশাবলী, যেমন Firebase নিরাপত্তা নিয়ম সেট আপ করা বা ক্লায়েন্ট-সাইড কোড যোগ করা ( উদাহরণস্বরূপ )
- ইনস্টল করা এক্সটেনশনটি তাৎক্ষণিকভাবে কীভাবে চেষ্টা করবেন তার জন্য সাধারণ নির্দেশাবলী (উদাহরণস্বরূপ, "কনসোলে যান, তারপর এটি করুন")
- এক্সটেনশনটি কীভাবে ট্রিগার করবেন সে সম্পর্কে প্রাথমিক তথ্য, বিশেষ করে HTTP অনুরোধ-ট্রিগার করা এক্সটেনশনের জন্য
- ইনস্টল করা এক্সটেনশনটি কীভাবে পর্যবেক্ষণ করবেন তার সংক্ষিপ্ত নির্দেশনা ( বয়লারপ্লেট টেক্সট দিয়ে শুরু করুন)
এই কন্টেন্ট ব্যবহারকারীর কাছে কোথায় প্রদর্শিত হবে?
ফায়ারবেস কনসোল">
ফায়ারবেস কনসোল">
ব্যবহারকারী আপনার এক্সটেনশন ইনস্টল করার পর Firebase কনসোলে (ইনস্টল করা এক্সটেনশনের বিস্তারিত কার্ডে)
- একটি প্রকৃত প্রকল্পে আপনার এক্সটেনশন ইনস্টল করে
POSTINSTALLকন্টেন্টের প্রদর্শন পর্যালোচনা করতে ভুলবেন না।
- একটি প্রকৃত প্রকল্পে আপনার এক্সটেনশন ইনস্টল করে
আপনার এক্সটেনশনের জন্য আপনার সোর্স কোড রেপো (এক্সটেনশন ডিরেক্টরির ভিতরে)
POSTINSTALL ফাইলগুলি এক্সটেনশনের জন্য প্যারামিটার মান এবং বেশ কয়েকটি ফাংশন-সম্পর্কিত ভেরিয়েবল অ্যাক্সেস করতে পারে। যখন POSTINSTALL কন্টেন্ট Firebase কনসোলে প্রদর্শিত হয়, তখন প্যারামিটার বা ভেরিয়েবল রেফারেন্সের পরিবর্তে প্রকৃত মানগুলি প্রদর্শিত হয়। আপনার POSTINSTALL ফাইলে প্যারামিটার এবং ভেরিয়েবল কীভাবে রেফারেন্স করবেন সে সম্পর্কে নীচে আরও জানুন।
কিছু সেরা অনুশীলন কী কী?
-
POSTINSTALLফাইলের সম্পূর্ণ বিষয়বস্তু সংক্ষিপ্ত, কিন্তু বর্ণনামূলক রাখুন। - শিরোনাম ব্যবহার করে বিষয়বস্তুকে ভাগ করুন যাতে আলাদা আলাদা কাজ বা ধারণা আলাদা করা যায়।
- আপনার ওয়েবসাইটে ( উদাহরণস্বরূপ ) অথবা এক্সটেনশন রিপোজিটরির মধ্যে সম্পূরক মার্কডাউন ফাইলগুলিতে ( উদাহরণস্বরূপ ) একটি নির্দিষ্ট কর্মপ্রবাহ বা কাজের জন্য বিস্তারিত নির্দেশাবলী প্রকাশ করার কথা বিবেচনা করুন।
- রেফারেন্স প্যারামিটার এবং ফাংশন-সম্পর্কিত ভেরিয়েবল যাতে ব্যবহারকারী নির্দেশাবলীর প্রেক্ষাপটে তাদের কনফিগার করা মান দেখতে পান
রেফারেন্সিং প্যারামিটার এবং ভেরিয়েবল
ইনস্টলেশনের পরে, Firebase কনসোলটি এক্সটেনশনের POSTINSTALL ফাইলের বিষয়বস্তু প্রদর্শন করে। যদি আপনি আপনার POSTINSTALL ফাইলে প্যারামিটার এবং ফাংশন-সম্পর্কিত ভেরিয়েবল (নীচের টেবিল দেখুন) উল্লেখ করেন, তাহলে কনসোলটি ইনস্টল করা ইনস্ট্যান্সের জন্য প্রকৃত মানগুলির সাথে এই রেফারেন্সগুলি পূরণ করে।
নিম্নলিখিত সিনট্যাক্স ব্যবহার করে POSTINSTALL ফাইলে কনফিগার করা প্যারামিটার মানগুলি অ্যাক্সেস করুন:${param: PARAMETER_NAME }
আপনি শুধুমাত্র আপনার POSTINSTALL ফাইলে নিম্নলিখিত ফাংশন-সম্পর্কিত ভেরিয়েবলগুলি উল্লেখ করতে পারেন। Firebase এই ভেরিয়েবলগুলিকে সমর্থন করে যাতে আপনি ইনস্টলেশনের পরে আপনার ব্যবহারকারীদের আরও সহজে নির্দেশিকা প্রদান করতে পারেন। এগুলি শুধুমাত্র POSTINSTALL ফাইলে ব্যবহারের জন্য উপলব্ধ কারণ এই ভেরিয়েবলগুলির মান ইনস্টলেশনের পরে উপলব্ধ হয় না।
এই টেবিলে, function-name হল extension.yaml মধ্যে ফাংশনের রিসোর্স অবজেক্টের name ফিল্ডের মান।
| ফাংশন-সম্পর্কিত চলকের রেফারেন্স | বিবরণ | পরিবর্তনশীল মান (এক্সটেনশন ইনস্টলেশনের পরে Firebase দ্বারা স্বয়ংক্রিয়ভাবে পূর্ণ) |
|---|---|---|
${function: function-name .location} | ||
| ফাংশনটি যেখানে স্থাপন করা হয়েছে তার অবস্থান | উদাহরণ মান:us-central1 | |
${function: function-name .name} | ||
| চূড়ান্ত স্থাপন করা ফাংশনের নাম, যার মধ্যে এক্সটেনশনের ইনস্ট্যান্স আইডি অন্তর্ভুক্ত থাকে | সাধারণ বিন্যাস: উদাহরণ মান: | |
${function: function-name .url} (শুধুমাত্র HTTP ফাংশনের জন্য প্রযোজ্য) | ||
| চূড়ান্ত স্থাপন করা ফাংশনের URL, যেখানে ক্লায়েন্ট কোড 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 ফাইল লেখা
এই ফাইলটিতে কী কী বিষয়বস্তু আছে?
প্রতিটি এক্সটেনশনের একটি CHANGELOG.md ফাইল থাকতে হবে যা আপনার প্রকাশিত এক্সটেনশনের প্রতিটি নতুন সংস্করণে অন্তর্ভুক্ত পরিবর্তনগুলি নথিভুক্ত করবে। প্রতিটি সংস্করণকে একটি লেভেল 2 হেডার ( ## ) এর অধীনে রাখুন; অন্যথায়, আপনি আপনার পছন্দ মতো যেকোনো মার্কডাউন ফর্ম্যাটিং ব্যবহার করতে পারেন।
নিম্নলিখিত উদাহরণটি অফিসিয়াল এক্সটেনশনগুলির একটি থেকে একটি উদ্ধৃতি:
## 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 কনসোল এবং CLI শুধুমাত্র সেই পরিবর্তনগুলি প্রদর্শন করে যা ব্যবহারকারী আপগ্রেড সম্পূর্ণ করলে কার্যকর হবে।
- আপনার এক্সটেনশনের সোর্স কোড রেপো (এক্সটেনশন ডিরেক্টরির ভিতরে)।