สร้างเอกสารประกอบผู้ใช้สำหรับส่วนขยายของคุณ

ส่วนขยายทุกรายการต้องมีเอกสารประกอบที่สอนให้ผู้ใช้ทราบว่าส่วนขยายทำอะไรได้บ้างและวิธีใช้

เอกสารประกอบขั้นต่ำที่จำเป็นคือไฟล์ Markdown 3 ไฟล์ต่อไปนี้

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

นอกจากนี้ คุณควรพิจารณาสร้างไฟล์ต่อไปนี้ด้วย

  • ไฟล์ README สำหรับที่เก็บสาธารณะของส่วนขยาย
  • บทแนะนำ คำแนะนำ และข้อมูลอ้างอิงแบบยาวที่เผยแพร่ในเว็บไซต์ของคุณเองและลิงก์ในไฟล์ PREINSTALL.md

หากต้องการดูแนวทางปฏิบัติแนะนำ ตัวอย่างวลีและโครงสร้างที่พบบ่อย เราขอแนะนำให้ ดูไฟล์ที่มาพร้อมกับ ส่วนขยายFirebaseอย่างเป็นทางการ

การสร้างไฟล์ README

ไดเรกทอรีส่วนขยายอาจมีไฟล์ README ก็ได้ โปรดทราบว่าคำสั่ง firebase ext:dev:init จะไม่สร้างไฟล์นี้ให้คุณโดยอัตโนมัติ

อย่างไรก็ตาม Firebase CLI รองรับคำสั่งที่สะดวกต่อไปนี้เพื่อ สร้างไฟล์ 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)
  • คำอธิบายสั้นๆ เกี่ยวกับผลกระทบด้านการเรียกเก็บเงิน (เริ่มด้วย ข้อความ Boilerplate)

เนื้อหานี้แสดงที่ใดให้ผู้ใช้เห็น

รูปภาพของเนื้อหาก่อนการติดตั้งใน <span class=คอนโซล Firebase">
เนื้อหาการติดตั้งล่วงหน้าในคอนโซล Firebase

รูปภาพขนาดใหญ่ของเนื้อหาก่อนการติดตั้งใน <span class=Firebase console">

  • ในหน้าของส่วนขยายใน extensions.dev
  • ที่เก็บซอร์สโค้ดสำหรับส่วนขยาย (ภายในไดเรกทอรีส่วนขยาย)
  • เป็นส่วนหนึ่งของไฟล์ README ของส่วนขยาย (หากคุณใช้แฟล็ก Firebase CLI --markdown > README.md flag)

ไฟล์ PREINSTALL ไม่สามารถเข้าถึงค่าพารามิเตอร์ของส่วนขยายได้ ดังนั้นคุณจึงไม่ควรคาดหวังให้การอ้างอิงพารามิเตอร์แสดงค่าจริง

แนวทางปฏิบัติแนะนำมีอะไรบ้าง

  • เก็บเนื้อหาทั้งหมดของไฟล์ PREINSTALL ไว้ ไม่เกิน 1 หน้า, หากเป็นไปได้
  • ระบุรายละเอียดในระดับที่ผู้ใช้ปลายทางจำเป็นต้องทราบก่อนติดตั้งส่วนขยาย
  • ใส่วิธีการโดยละเอียดในไฟล์ POSTINSTALL หรือไฟล์เสริมอื่นๆ
  • กล่าวถึงสั้นๆ หากคุณมีเครื่องมือหรือสคริปต์อื่นๆ เพื่อรองรับส่วนขยาย

การเขียนไฟล์ POSTINSTALL

ไฟล์ POSTINSTALL คือหน้าวิธีการโดยละเอียดหลังการติดตั้งของส่วนขยาย

ไฟล์นี้มีเนื้อหาอะไรบ้าง

  • วิธีการโดยละเอียดสำหรับงาน ที่จำเป็น หลังการติดตั้ง เช่น การตั้งค่ากฎการรักษาความปลอดภัยของ Firebase หรือการเพิ่มโค้ดฝั่งไคลเอ็นต์ (ตัวอย่าง)
  • วิธีการทั่วไปเกี่ยวกับวิธีลองใช้ส่วนขยายที่ติดตั้งทันที (เช่น "ไปที่คอนโซล แล้วทำสิ่งนี้")
  • ข้อมูลพื้นฐานเกี่ยวกับวิธีเรียกใช้ส่วนขยาย โดยเฉพาะอย่างยิ่งสำหรับ ส่วนขยายที่เรียกใช้โดยคำขอ HTTP
  • คำแนะนำสั้นๆ เกี่ยวกับวิธีตรวจสอบส่วนขยายที่ติดตั้ง (เริ่มด้วย ข้อความ Boilerplate)

เนื้อหานี้แสดงที่ใดให้ผู้ใช้เห็น

รูปภาพของเนื้อหาหลังการติดตั้งใน <span class=คอนโซล Firebase">
เนื้อหาหลังการติดตั้งในคอนโซล Firebase

รูปภาพขนาดใหญ่ของเนื้อหาหลังการติดตั้งใน <span class=Firebase console">

  • ในคอนโซล Firebase หลังจากที่ผู้ใช้ติดตั้งส่วนขยายของคุณ (ในการ์ดรายละเอียดของส่วนขยายที่ติดตั้ง )

  • ที่เก็บซอร์สโค้ดสำหรับส่วนขยาย (ภายในไดเรกทอรีส่วนขยาย)

ไฟล์ POSTINSTALL สามารถเข้าถึงค่าพารามิเตอร์และตัวแปรที่เกี่ยวข้องกับฟังก์ชันหลายรายการของส่วนขยายได้ เมื่อเนื้อหา POSTINSTALL แสดงใน คอนโซล Firebase ระบบจะแสดง ค่าจริง แทนที่จะแสดงการอ้างอิงพารามิเตอร์ หรือตัวแปร ดูข้อมูลเพิ่มเติมด้านล่างเกี่ยวกับวิธีอ้างอิงพารามิเตอร์และ ตัวแปรในไฟล์ 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 ไปยัง URL นี้ได้

รูปแบบทั่วไป:
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

ไฟล์นี้มีเนื้อหาอะไรบ้าง

ทุกส่วนขยายต้องมีไฟล์ 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 และ CLI เมื่อผู้ใช้อัปเกรดเป็นส่วนขยายเวอร์ชันใหม่ คอนโซล Firebase และ CLI จะแสดงเฉพาะการเปลี่ยนแปลงที่จะ มีผลหากผู้ใช้อัปเกรดเสร็จสมบูรณ์
  • ที่เก็บซอร์สโค้ดของส่วนขยาย (ภายในไดเรกทอรีส่วนขยาย)