إنشاء مستندات المستخدم للإضافة

يجب أن تتضمّن كل إضافة مستندات تشرح للمستخدمين وظيفتها وكيفية استخدامها.

الحد الأدنى من المستندات المطلوبة هو هذه المجموعة من ملفات markdown الثلاثة:

  • PREINSTALL.md
  • POSTINSTALL.md
  • CHANGELOG.md

بالإضافة إلى ذلك، ننصحك أيضًا بإنشاء ما يلي:

  • ملف README للمستودع العلني للإضافات
  • البرامج التعليمية والأدلة والمرجعات الطويلة المنشورة على موقعك الإلكتروني والمرتبطة في PREINSTALL.md

للتعرّف على بعض أفضل الممارسات والصياغة والبنية الشائعة، ننصحك بمحاولة قراءة الملفات المتاحة باستخدام ملحقات Firebase الرسمية.

إنشاء ملف README

يمكن أن يحتوي دليل الإضافة اختياريًا على ملف README. يُرجى العلم أنّ الأمر firebase ext:dev:init لا ينشئ تلقائيًا ملفًا شخصيًا لك.

مع ذلك، تتيح لك واجهة برمجة التطبيقات Firebase استخدام الأمر التالي لإنشاء ملف README تلقائيًا يحتوي على محتوى تم استرجاعه من ملفَي extension.yaml وPREINSTALL.md:

firebase ext:info ./path/to/extension --markdown > README.md

يتم إنشاء جميع ملفات README الخاصة بملف الإضافات الرسمية Firebase باستخدام هذا الأمر.

إضافة معلومات التثبيت

بعد كتابة ملف 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 هو نظرة عامة على إضافتك، وهو نوع من صفحات "التسويق".

ما هو المحتوى الوارد في هذا الملف؟

  • وصف شامل لوظيفة الإضافة
  • قائمة بالشروط الأساسية، مثل إعداد قاعدة البيانات أو الوصول إلى خدمة غير تابعة لشركة Google (مثال)
  • وصف موجز لأي مهام ما قبل التثبيت وتعليماتها
  • وصف موجز لأي مهام بعد التثبيت (مثال) (تُدرج التعليمات التفصيلية في POSTINSTALL)
  • وصف موجز لأيّ تأثيرات للفوترة (ابدأ بعبارة مكرّرة)

أين يظهر هذا المحتوى للمستخدم؟

صورة لمحتوى التثبيت المُسبَق في <span class=وحدة تحكُّم Firebase">
تثبيت المحتوى مسبقًا في وحدة تحكُّم Firebase

صورة كبيرة لمحتوى التثبيت المُسبَق في <span class=وحدة تحكّم Firebase">

  • في صفحة الإضافة على extensions.dev
  • مستودع رمز المصدر الخاص بإضافة Chrome (داخل دليل الإضافة)
  • كجزء من ملف README الخاص بالإضافة (إذا كنت تستخدم Firebase واجهة سطر الأوامر --markdown > README.md)

لا يمكن لملفات PREINSTALL الوصول إلى قيم المَعلمات للإضافة، لذا لا تتوقّع أن يتم عرض مراجع المَعلمات بالقيم الفعلية.

ما هي أفضل الممارسات لحل هذه المشكلة؟

  • يجب أن يكون المحتوى الكامل لملف PREINSTALL أقصر من صفحة واحدة، إذا أمكن.
  • قدِّم مستوى التفاصيل الذي يحتاج إليه المستخدم النهائي بشكلٍ مطلق قبل تثبيت الإضافة.
  • يجب وضع تعليمات تفصيلية في ملف POSTINSTALL أو في ملفات تكميلية أخرى.
  • يُرجى الإشارة بوضوح إلى ما إذا كنت تقدّم أدوات أو نصوص برمجية أخرى لاستخدام الإضافة.

كتابة ملف POSTINSTALL

ملف POSTINSTALL هو صفحة التعليمات المفصّلة الخاصة بالإضافة بعد التثبيت.

ما هو المحتوى الوارد في هذا الملف؟

  • تعليمات مفصّلة لأي مهام مطلوب إكمالها بعد التثبيت، مثل إعداد قواعد أمان Firebase أو إضافة رمز برمجي من جهة العميل (مثال)
  • تعليمات عامة حول كيفية تجربة الإضافة المثبَّتة على الفور (على سبيل المثال، "الانتقال إلى وحدة التحكّم، ثم إجراء ما يلي")
  • معلومات أساسية حول كيفية تنشيط الإضافة، خاصةً بالنسبة إلى الإضافات التي يتم تنشيطها من خلال طلب HTTP
  • إرشادات موجزة حول كيفية مراقبة الإضافة المثبَّتة (ابدأ بعبارة نموذجية)

أين يظهر هذا المحتوى للمستخدم؟

صورة لمحتوى ما بعد التثبيت في <span class=وحدة تحكُّم Firebase">
المحتوى بعد التثبيت في وحدة تحكُّم Firebase

صورة كبيرة لمحتوى ما بعد التثبيت في <span class=وحدة تحكّم Firebase">

  • في وحدة تحكّم Firebase بعد تثبيت المستخدم لإضافة Chrome (في بطاقة تفاصيل الإضافة المثبّتة)

  • مستودع رمز المصدر الخاص بإضافة Chrome (داخل دليل الإضافة)

يمكن لملفات POSTINSTALL الوصول إلى قيم المَعلمات والعديد من المتغيّرات المتعلّقة بالدالة للإضافة. عند عرض محتوى POSTINSTALL في وحدة تحكّم Firebase، يتم عرض القيم الفعلية بدلاً من المَعلمة أو مراجع المتغيّرات. اطّلِع على مزيد من المعلومات أدناه عن كيفية الإشارة إلى المَعلمات والvari في ملف POSTINSTALL.

ما هي أفضل الممارسات لحل هذه المشكلة؟

  • يجب أن يكون المحتوى الكامل لملف POSTINSTALL موجزًا ووصفيًا في الوقت نفسه.
  • قسم المحتوى باستخدام العناوين لتقسيم المهام أو المفاهيم المختلفة.
  • ننصحك بنشر تعليمات مفصّلة لمسار عمل أو مهمة معيّنة على موقعك الإلكتروني (مثال) أو في ملفات markdown تكميلية ضمن مستودع الإضافات (مثال).
  • الإشارة إلى المَعلمات والمتغيّرات المتعلقة بالدوالّ لكي يرى المستخدم قيمها التي تم ضبطها في سياق التعليمات

الإشارة إلى المَعلمات والمتغيّرات

بعد التثبيت، تعرض وحدة تحكّم Firebase محتوى ملف POSTINSTALL الخاص بالإضافة. إذا كنت تشير إلى المَعلمات والمتغيّرات المتعلقة بالدوالّ (راجِع الجدول أدناه) في ملف POSTINSTALL، ستعبئ وحدة التحكّم هذه الإشارات بالقيم الحالية للنسخة المثبَّتة.

يمكنك الوصول إلى قيم المَعلمة التي تم ضبطها في ملف POSTINSTALL باستخدام البنية التالية: ${param:PARAMETER_NAME}

يمكنك أيضًا الإشارة إلى المتغيّرات التالية ذات الصلة بالدوالّ فيملف POSTINSTALL فقط. تتيح منصة Firebase استخدام هذه المتغيّرات لكي تتمكّن من تقديم إرشادات للمستخدمين بسهولة أكبر بعد التثبيت. ولا يمكن استخدامها إلا في ملف POSTINSTALL لأنّ قيم هذه المتغيّرات لا تتوفّر إلا بعد التثبيت.

في هذا الجدول، function-name هي قيمة حقل name في ملف موارد الوظيفة ضمن extension.yaml.

مرجع للمتغيّر ذي الصلة بالدالة الوصف قيمة المتغيّر (يتم تعبئتها تلقائيًا من خلال Firebase بعد تثبيت الإضافة)
${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)
عنوان URL للدالة المُنشرة النهائية التي يمكن لرمز العميل إرسال طلبات 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

توثيق كيفية بدء إضافة

في مستندات المستخدم الخاصة بإضافة Chrome، عليك إرشاد المستخدمين إلى كيفية تفعيل الإضافة. يمكن أن تكون هذه التعليمات مفصّلة بقدر ما تعتقد أنّه ضروري، ولكن عليك مراعاة أفضل الممارسات لكتابة ملف POSTINSTALL. للحصول على إرشادات حول كيفية تقديم هذه التعليمات، وسِّع القسم أدناه الذي ينطبق على إضافتك.

كتابة ملف CHANGELOG

ما هو المحتوى الوارد في هذا الملف؟

يجب أن تتضمّن كل إضافة ملف CHANGELOG.md يسجّل التغييرات المضمّنة في كل إصدار جديد من الإضافة تنشره. ضَع كل إصدار تحت عنوان من المستوى 2 (##)، ويمكنك استخدام أي تنسيق Markdown تفضّله.

في ما يلي مثال مقتطف من إحدى الإضافات الرسمية:

## 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 وواجهة سطر الأوامر، عندما يُجري المستخدمون ترقية إلى إصدارات جديدة من إضافة لا تعرض وحدة تحكّم Firebase وواجهة سطر الأوامر سوى التغييرات التي ستسري إذا أكمل المستخدم عملية الترقية.
  • مستودع رمز مصدر الإضافة (داخل دليل الإضافة)