আপনার এক্সটেনশনের জন্য ব্যবহারকারীর ডকুমেন্টেশন তৈরি করুন

প্রতিটি এক্সটেনশনের অবশ্যই ডকুমেন্টেশন থাকতে হবে, যা ব্যবহারকারীদের শেখায় এক্সটেনশনটি কী কাজ করে এবং কীভাবে এটি ব্যবহার করতে হয়।

ন্যূনতম ও আবশ্যক ডকুমেন্টেশন হলো এই তিনটি মার্কডাউন ফাইলের সেট:

  • 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 this extension in your Firebase project](https://www.gstatic.com/mobilesdk/210513_mobilesdk/install-extension.png "Install this extension in your Firebase project")][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 অংশে দিতে হবে)
  • বিলিং সংক্রান্ত যেকোনো প্রভাবের সংক্ষিপ্ত বিবরণ ( প্রচলিত লেখা দিয়ে শুরু করুন)

এই বিষয়বস্তুটি ব্যবহারকারীর কাছে কোথায় প্রদর্শিত হয়?

প্রি-ইনস্টল কন্টেন্টের ছবি <span class= ফায়ারবেস কনসোল">
Firebase কনসোলে বিষয়বস্তু আগে থেকে ইনস্টল করুন

<span class= ফায়ারবেস কনসোল">

  • extensions.dev- এ এক্সটেনশনটির পেজে।
  • আপনার এক্সটেনশনের সোর্স কোড রিপোজিটরি (এক্সটেনশন ডিরেক্টরির ভিতরে)
  • এক্সটেনশনটির README-এর অংশ হিসেবে (যদি আপনি Firebase CLI ব্যবহার করেন) --markdown > README.md ফ্ল্যাগ )

PREINSTALL ফাইলগুলো এক্সটেনশনের প্যারামিটার ভ্যালুগুলো অ্যাক্সেস করতে পারে না, তাই প্যারামিটার রেফারেন্সগুলো প্রকৃত ভ্যালুসহ রেন্ডার হবে বলে আশা করা উচিত নয়।

কিছু সেরা অনুশীলন কী কী?

  • সম্ভব হলে PREINSTALL ফাইলের সম্পূর্ণ বিষয়বস্তু এক পৃষ্ঠার মধ্যে রাখুন।
  • এক্সটেনশনটি ইনস্টল করার আগে একজন ব্যবহারকারীর যতটুকু জানা একান্ত প্রয়োজন, ঠিক ততটুকু বিস্তারিত তথ্য প্রদান করুন।
  • POSTINSTALL ফাইলে বা অন্যান্য সম্পূরক ফাইলে বিস্তারিত নির্দেশাবলী রাখুন।
  • এক্সটেনশনটিকে সমর্থন করার জন্য আপনি অন্য কোনো টুল বা স্ক্রিপ্ট প্রদান করলে, তা সংক্ষেপে উল্লেখ করুন।

একটি POSTINSTALL ফাইল লেখা

POSTINSTALL ফাইলটি হলো আপনার এক্সটেনশনের ইনস্টলেশন-পরবর্তী বিস্তারিত নির্দেশনামূলক পৃষ্ঠা।

এই ফাইলে কী বিষয়বস্তু আছে?

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

এই বিষয়বস্তুটি ব্যবহারকারীর কাছে কোথায় প্রদর্শিত হয়?

ইনস্টলেশন-পরবর্তী বিষয়বস্তুর ছবি <span class= ফায়ারবেস কনসোল">
Firebase কনসোলে ইনস্টলেশন-পরবর্তী বিষয়বস্তু

<span class= ফায়ারবেস কনসোল">

  • কোনো ব্যবহারকারী আপনার এক্সটেনশনটি ইনস্টল করার পর Firebase কনসোলে (ইনস্টল করা এক্সটেনশনটির ডিটেইল কার্ডে)

  • আপনার এক্সটেনশনের সোর্স কোড রিপোজিটরি (এক্সটেনশন ডিরেক্টরির ভিতরে)

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}
চূড়ান্তভাবে ডেপ্লয় করা ফাংশনের নাম, যার মধ্যে এক্সটেনশনটির ইনস্ট্যান্স আইডি অন্তর্ভুক্ত থাকে।

সাধারণ বিন্যাস:
ext- extension-instance-id - function-name

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

${function: function-name .url} (শুধুমাত্র HTTP ফাংশনের জন্য প্রযোজ্য)
চূড়ান্তভাবে ডেপ্লয় করা ফাংশনের ইউআরএল, যেখানে ক্লায়েন্ট কোড HTTP রিকোয়েস্ট পাঠাতে পারে।

সাধারণ বিন্যাস:
https:// deployment-location - project-id .cloudfunctions.net/ name-of-final-deployed-function

উদাহরণ মান:
https://us-central1-project-123.cloudfunctions.net/ext-my-awesome-extension-6m31-yourFunctionName

একটি এক্সটেনশন কীভাবে চালু করতে হয় তার নথিভুক্তকরণ

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

চেঞ্জলগ ফাইল লেখা

এই ফাইলে কী বিষয়বস্তু আছে?

প্রতিটি এক্সটেনশনের একটি 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
  • আপনার এক্সটেনশনের সোর্স কোড রিপো (এক্সটেনশন ডিরেক্টরির ভিতরে)।