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

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

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

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

นอกจากนี้ คุณควรพิจารณาสร้างเนื้อหาต่อไปนี้ด้วย

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

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

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

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

อย่างไรก็ตาม CLI ของ Firebase รองรับคำสั่งอำนวยความสะดวกต่อไปนี้เพื่อสร้างไฟล์ README ที่มีเนื้อหาที่ดึงมาจากไฟล์ extension.yaml และไฟล์ PREINSTALL.md โดยอัตโนมัติ

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

ไฟล์ README ทั้งหมดสําหรับส่วนขยาย 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 คือภาพรวมของส่วนขยาย ซึ่งเป็นหน้า "การตลาด" ประเภทหนึ่ง

ไฟล์นี้มีเนื้อหาใดบ้าง

  • คำอธิบายที่ครอบคลุมฟังก์ชันการทำงานของส่วนขยาย
  • รายการสิ่งที่ต้องมีก่อน เช่น การตั้งค่าฐานข้อมูลหรือการเข้าถึงบริการที่ไม่ใช่ของ Google (ตัวอย่าง)
  • คำอธิบายสั้นๆ ของงานก่อนการติดตั้งและวิธีการ
  • คำอธิบายสั้นๆ ของงานหลังการติดตั้ง (ตัวอย่าง) (วิธีการโดยละเอียดอยู่ใน POSTINSTALL)
  • คำอธิบายสั้นๆ เกี่ยวกับผลกระทบของการเรียกเก็บเงิน (เริ่มต้นด้วยข้อความที่เตรียมไว้ล่วงหน้า)

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

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

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

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

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

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

  • ใส่เนื้อหาทั้งหมดของไฟล์ PREINSTALL ให้ไม่เกิน 1 หน้า หากเป็นไปได้
  • ระบุระดับรายละเอียดที่ผู้ใช้ปลายทางจำเป็นต้องทราบก่อนติดตั้งส่วนขยาย
  • ใส่วิธีการโดยละเอียดในไฟล์ 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
  • วิธีการคร่าวๆ ในการตรวจสอบส่วนขยายที่ติดตั้ง (เริ่มต้นด้วยข้อความที่เตรียมไว้)

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

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

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

  • ในคอนโซล 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 ได้

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

เราขอแนะนำให้ใช้ข้อความที่เขียนไว้ล่วงหน้าต่อไปนี้ให้มากที่สุดเท่าที่จะทำได้ โดยให้สอดคล้องกับส่วนขยายของคุณ

สำหรับส่วนขยายทั้งหมด ให้ใส่ส่วนต่อไปนี้เพื่อช่วยให้ผู้ใช้ได้ตรวจสอบส่วนขยายที่ติดตั้ง

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 โดยเฉพาะสำหรับการทดสอบส่วนขยายครั้งแรก ตัวอย่างเช่น สมมติว่าส่วนขยายสร้างเอกสาร Cloud Firestore ใหม่ทุกครั้งที่มีการสร้างผู้ใช้ Firebase Authentication ใหม่ คุณสามารถบอกให้ผู้ใช้ทดสอบอินสแตนซ์ที่ติดตั้งไว้ของส่วนขยายได้โดยการเพิ่มผู้ใช้ Authentication ใหม่ในคอนโซลด้วยตนเอง จากนั้นผู้ใช้จะเห็นเอกสารใหม่ที่สร้างขึ้นในส่วน Cloud Firestore ของคอนโซล

เพิ่มโค้ดฝั่งไคลเอ็นต์

นอกจากนี้ คุณยังแนะนำผู้ใช้เกี่ยวกับวิธีเพิ่มโค้ดฝั่งไคลเอ็นต์เพื่อเรียกให้ส่วนขยายทำงานได้ (หากมี) คุณควรนำผู้ใช้ไปยังเอกสารประกอบอย่างเป็นทางการสำหรับ API ที่ผู้ใช้จะต้องใช้ นอกจากนี้ คุณยังใส่ตัวอย่างแอปหรือตัวอย่างไคลเอ็นต์ที่คอมไพล์แล้วเพื่อช่วยให้ผู้ใช้ได้ผสานรวมส่วนขยายเข้ากับแอปของตนได้ด้วย (ดูตัวอย่างได้จากส่วนขยายตัวนับแบบกระจาย)

เพื่อให้ผู้ใช้เรียกใช้ฟังก์ชันที่ทริกเกอร์โดยคําขอ HTTP (และส่วนขยาย) ได้ คุณต้องระบุชื่อหรือ URL ของฟังก์ชันที่ติดตั้งใช้งาน

ชื่อของฟังก์ชันที่ติดตั้งใช้งานขั้นสุดท้ายจะไม่เหมือนกับ name ที่คุณระบุไว้ในออบเจ็กต์ทรัพยากรของฟังก์ชันภายใน extension.yaml 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}`**.
    
  • สําหรับฟังก์ชันที่เรียกใช้ได้ (onCall) ของ HTTP

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