หน้านี้จะอธิบายวิธีเผยแพร่ส่วนขยายในฮับส่วนขยาย
ก่อนเริ่มต้น
หากต้องการเผยแพร่ส่วนขยาย คุณจะต้องลงทะเบียนเป็นผู้เผยแพร่ส่วนขยายก่อน
แหล่งที่มาที่ยืนยันได้
ส่วนขยายทั้งหมดที่เผยแพร่ในฮับส่วนขยายต้องมีแหล่งที่มาที่ยืนยันได้โดยสาธารณะ แทนที่จะอัปโหลดซอร์สโค้ดของส่วนขยายไปยังศูนย์ส่วนขยายโดยตรง คุณจะต้องระบุตำแหน่งต้นทางและฮับส่วนขยายจะดาวน์โหลดและสร้างขึ้นจากที่นั่น
ซึ่งในปัจจุบันนี้หมายถึงการทำให้ซอร์สโค้ดของส่วนขยายพร้อมใช้งานในที่เก็บของ GitHub สาธารณะ
การอัปโหลดจากแหล่งที่มาที่ยืนยันได้มีประโยชน์หลายประการดังนี้
- ผู้ใช้สามารถตรวจสอบซอร์สโค้ดของส่วนขยายที่จะติดตั้งได้
- คุณตรวจสอบได้ว่าคุณอัปโหลดเฉพาะสิ่งที่ตั้งใจจะอัปโหลดเท่านั้น เช่น ไฟล์ที่อยู่ระหว่างดำเนินการ หรือไฟล์ที่หลงเหลืออยู่ซึ่งอยู่ระหว่างการพัฒนา เป็นต้น
รอบการพัฒนาที่แนะนำ
เครื่องมือการพัฒนาของ Firebase Extensions รองรับการอัปโหลดส่วนขยายเวอร์ชันก่อนเผยแพร่ ซึ่งทำให้สามารถทดสอบส่วนขยายและขั้นตอนการติดตั้งส่วนขยายได้อย่างง่ายดายในสภาพแวดล้อมเดียวกันที่จะเผยแพร่ส่วนขยายเหล่านั้นในที่สุด
ความสามารถนี้ทําให้เกิดวงจรการพัฒนาในลักษณะต่อไปนี้
พัฒนาและทำซ้ำส่วนขยายอย่างรวดเร็วโดยใช้ชุดโปรแกรมจำลอง Firebase
ทดสอบส่วนขยายในโปรเจ็กต์จริงโดยการติดตั้งจากต้นทางในเครื่อง โดยทำดังนี้
firebase ext:install /path/to/extension
firebase deploy --only extensions
อัปโหลดเวอร์ชันก่อนเผยแพร่ไปยังฮับส่วนขยาย (ดูด้านล่าง) แจกจ่ายลิงก์การติดตั้งสำหรับการทดสอบที่กว้างขึ้น และทำซ้ำโดยการอัปโหลดเวอร์ชันก่อนเผยแพร่เพิ่มเติมตามที่จำเป็น
อัปโหลดเวอร์ชันล่าสุดที่มีความเสถียรไปยังฮับส่วนขยาย (ดูด้านล่าง) แล้วส่งเข้ารับการตรวจสอบ หากส่วนขยายผ่านการตรวจสอบ ส่วนขยายจะได้รับการเผยแพร่ในฮับส่วนขยาย
เพิ่มหมายเลขเวอร์ชันใน
extension.yaml
และทำซ้ำรอบนี้สำหรับส่วนขยายเวอร์ชันถัดไป
อัปโหลดส่วนขยายใหม่
วิธีอัปโหลดส่วนขยายเป็นครั้งแรก
ไม่บังคับ: ส่งโค้ดไปยังที่เก็บ GitHub สาธารณะ
เรียกใช้คำสั่ง
ext:dev:upload
ของ Firebase CLI ดังนี้GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
แหล่งที่มาในเครื่อง
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
ในการเรียกใช้คำสั่ง คุณต้องระบุสิ่งต่อไปนี้
รหัสผู้เผยแพร่โฆษณาที่คุณลงทะเบียน
สตริงรหัสที่จะระบุส่วนขยาย ตั้งชื่อส่วนขยายโดยใช้รูปแบบต่อไปนี้
firebase-product-description-of-tasks-performed
เช่นfirestore-bigquery-export
คำสั่งจะแสดงข้อมูลเพิ่มเติมให้คุณทราบ:
หากอัปโหลดจาก GitHub ให้ทำดังนี้
URL ไปยังที่เก็บของส่วนขยายใน GitHub โปรดทราบว่าที่เก็บอาจมีส่วนขยายหลายรายการได้ตราบใดที่ส่วนขยายแต่ละรายการมีรูทที่ไม่ซ้ำ
เมื่ออัปโหลดส่วนขยายใหม่เป็นครั้งแรก ที่เก็บจะได้รับการลงทะเบียนเป็นแหล่งที่มา Canonical ของส่วนขยาย
ไดเรกทอรีในที่เก็บที่มีส่วนขยายของคุณ
การอ้างอิง Git ของคอมมิตที่คุณต้องการใช้สร้างแหล่งที่มาของเวอร์ชันส่วนขยาย ซึ่งอาจเป็นคอมมิตแฮช แท็ก หรือชื่อสาขา
ช่วงเผยแพร่ของเวอร์ชันที่คุณกำลังอัปโหลด
ขั้นตอน
alpha
,beta
และrc
(ตัวเลือกรุ่น) มีไว้สำหรับการอัปโหลดเวอร์ชันก่อนเผยแพร่เพื่อให้ผู้ทดสอบติดตั้ง ใช้หนึ่งในขั้นตอนเหล่านี้สำหรับ การอัปโหลดส่วนขยายใหม่ครั้งแรกขั้นตอน
stable
ใช้สำหรับการเผยแพร่ต่อสาธารณะในฮับส่วนขยาย การอัปโหลดรุ่นstable
จะเริ่มต้นการตรวจสอบโดยอัตโนมัติ และหากผ่านการทดสอบ ส่วนขยายก็จะเผยแพร่
โปรดทราบว่าคุณไม่ได้ระบุหมายเลขเวอร์ชัน เพราะค่านี้มาจากไฟล์
extension.yaml
เมื่อคุณอัปโหลดส่วนขยายเวอร์ชันทดลอง ระยะและหมายเลขการอัปโหลดจะเพิ่มต่อท้ายเวอร์ชันนั้น ตัวอย่างเช่น หากextension.yaml
ระบุเวอร์ชัน 1.0.1 และอัปโหลดตัวเลือกการเผยแพร่ ก็จะส่งผลให้ได้เวอร์ชัน1.0.1-rc.0
การอัปโหลดผู้สมัครรุ่นอื่นของเวอร์ชันเดียวกันจะเพิ่มการนับโดยอัตโนมัติ ซึ่งส่งผลให้มี1.0.1-rc.1
เพิ่มขึ้นเรื่อยๆ
เมื่อคุณอัปโหลดส่วนขยายเวอร์ชันทดลองแล้ว คุณก็สามารถแชร์ส่วนขยายนั้นกับผู้อื่นเพื่อทำการทดสอบได้ ผู้ใช้สามารถติดตั้งส่วนขยายได้ 2 วิธี ดังนี้
ด้วยคอนโซล: ผู้ใช้สามารถติดตั้งส่วนขยายได้โดยคลิกลิงก์ที่มีรูปแบบต่อไปนี้
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
คุณจะแชร์ลิงก์โดยตรงกับผู้ทดสอบได้
ด้วย CLI: ผู้ใช้จะติดตั้งส่วนขยายได้โดยการส่งผ่านสตริงรหัสส่วนขยายไปยังคำสั่ง
ext:install
firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
อัปโหลดเวอร์ชันอัปเดต
หลังจากอัปโหลดส่วนขยายเวอร์ชันแรกแล้ว คุณสามารถอัปโหลดอัปเดตเพื่อแก้ปัญหา เพิ่มฟีเจอร์ หรือเลื่อนขั้นการเผยแพร่ได้ เมื่อคุณอัปโหลดเวอร์ชันใหม่ ผู้ใช้ที่ติดตั้งส่วนขยายเวอร์ชันเก่าไว้จะได้รับแจ้งในคอนโซล Firebase ให้อัปเกรด
หากต้องการอัปโหลดการอัปเดต ให้ทำดังนี้
ไม่บังคับ: ส่งโค้ดของคุณไปยังที่เก็บ Git สาธารณะ
เรียกใช้คำสั่ง
ext:dev:upload
ของ Firebase CLI ดังนี้GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
ครั้งนี้คุณจะไม่ได้รับข้อความแจ้งให้ระบุที่เก็บ GitHub หรือไดเรกทอรีรากของส่วนขยายเนื่องจากมีการกำหนดค่าสำหรับส่วนขยายของคุณแล้ว หากคุณเปลี่ยนโครงสร้างภายในโครงสร้างที่เก็บแล้วหรือย้ายข้อมูลไปยังที่เก็บใหม่ ก็เปลี่ยนโครงสร้างได้โดยใช้อาร์กิวเมนต์คำสั่ง
--root
และ--repo
แหล่งที่มาในเครื่อง
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
ส่งส่วนขยายสำหรับการเผยแพร่
เมื่อพร้อมที่จะเผยแพร่ส่วนขยายต่อสาธารณะ ให้ทำดังนี้
คอมมิตโค้ดของคุณไปยังที่เก็บ Git สาธารณะ (ต้องระบุสำหรับรุ่นที่เผยแพร่ต่อสาธารณะ)
เรียกใช้คำสั่ง
ext:dev:upload
ของ Firebase CLI โดยระบุstable
เป็นขั้นตอนการเผยแพร่firebase ext:dev:upload your_publisher_id/your_extension_id
หากคุณเผยแพร่ส่วนขยายเวอร์ชันหนึ่งมาก่อน การอัปโหลดรุ่นที่เสถียรรุ่นใหม่จะส่งส่วนขยายเข้ารับการตรวจสอบโดยอัตโนมัติ
หากคุณอัปโหลดรุ่นที่เสถียรรุ่นแรกของส่วนขยาย ให้ค้นหาส่วนขยายนั้นในหน้าแดชบอร์ดของผู้เผยแพร่โฆษณา แล้วคลิกเผยแพร่ไปยังฮับส่วนขยาย
เมื่อส่งแล้ว การตรวจสอบอาจใช้เวลา 2-3 วัน หากได้รับการยอมรับ ส่วนขยายจะได้รับการเผยแพร่ ไปยังฮับส่วนขยาย หากถูกปฏิเสธ คุณจะได้รับข้อความอธิบายเหตุผล จากนั้นคุณสามารถแก้ไขปัญหาที่รายงานและส่งเข้ารับการตรวจสอบอีกครั้งได้
หากต้องการเร่งการตรวจสอบและเพิ่มโอกาสในการผ่านการตรวจสอบครั้งแรก โปรดตรวจสอบสิ่งต่อไปนี้ก่อนส่ง
- คุณได้ทดสอบส่วนขยายและขั้นตอนการติดตั้งอย่างละเอียดแล้ว
- เอกสารของคุณครบถ้วนและถูกต้อง และแสดงผลได้ดีในคอนโซล Firebase
- ชื่อและการสร้างแบรนด์ผู้เผยแพร่โฆษณาของคุณระบุตัวคุณเป็นผู้เผยแพร่โฆษณาอย่างชัดเจนและถูกต้อง
- ชื่อ คำอธิบาย และไอคอนของส่วนขยายแสดงถึงวัตถุประสงค์ของส่วนขยายอย่างชัดเจนและถูกต้อง
- คุณได้ใช้แท็กที่มีประโยชน์และถูกต้อง
- คุณได้ประกาศใน
extension.yaml
API ของ Google และที่ไม่ใช่ของ Google ทั้งหมดที่ใช้ และเหตุการณ์ทุกประเภทที่ส่วนขยายของคุณเผยแพร่ - คุณขอเข้าถึงเฉพาะบทบาทที่จำเป็นต่อการทำงานของส่วนขยาย และคุณได้อธิบายให้ผู้ใช้ทราบอย่างชัดเจนแล้วถึงเหตุผลที่คุณต้องการสิทธิ์เข้าถึงดังกล่าว
- ไฟล์ต้นฉบับได้รับอนุญาตอย่างชัดเจนภายใต้ข้อกำหนดของ
Apache-2.0
จัดการส่วนขยายที่อัปโหลดและเผยแพร่แล้ว
แสดงรายการส่วนขยายที่คุณอัปโหลด
หากต้องการแสดงส่วนขยายที่คุณอัปโหลดไว้ภายใต้รหัสผู้เผยแพร่โฆษณา ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
แดชบอร์ดผู้เผยแพร่โฆษณา
โปรดดูในแดชบอร์ดผู้เผยแพร่โฆษณา
Firebase CLI
เรียกใช้คำสั่ง ext:dev:list
firebase ext:dev:list your_publisher_id
ดูการใช้ส่วนขยายที่คุณอัปโหลด
หากต้องการดูการใช้ส่วนขยายที่คุณอัปโหลดภายใต้รหัสผู้เผยแพร่โฆษณา ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
แดชบอร์ดผู้เผยแพร่โฆษณา
แดชบอร์ดผู้เผยแพร่โฆษณามีเมตริกการใช้งานสะสมสำหรับส่วนขยายทั้งหมดและเมตริกแต่ละรายการสำหรับส่วนขยายแต่ละรายการ
Firebase CLI
เรียกใช้คำสั่ง ext:dev:usage
firebase ext:dev:usage your_publisher_id
เลิกใช้งานส่วนขยายเวอร์ชันหนึ่ง
เมื่อถึงเวลาหนึ่ง คุณอาจต้องการเลิกใช้งานส่วนขยายเวอร์ชันเก่า ตัวอย่างเช่น หากคุณเผยแพร่เวอร์ชันใหม่ที่แก้ไขข้อบกพร่องร้ายแรงหรืออัปเดตทรัพยากร Dependency ของการอัปเดตความปลอดภัยที่สำคัญ คุณต้องป้องกันไม่ให้ผู้ใช้ใหม่ติดตั้งเวอร์ชันเก่าและสนับสนุนให้ผู้ใช้ที่มีอยู่อัปเกรด
หากต้องการเลิกใช้งานส่วนขยายเวอร์ชันใดเวอร์ชันหนึ่ง ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
แดชบอร์ดผู้เผยแพร่โฆษณา
- ในแดชบอร์ดผู้เผยแพร่โฆษณา คลิกส่วนขยายเพื่อเปิดมุมมองรายละเอียด
- เลือกเวอร์ชันที่ต้องการเลิกใช้งาน
- คลิกเลิกใช้งานเวอร์ชัน
Firebase CLI
เรียกใช้คำสั่ง ext:dev:deprecate
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]
คุณจะระบุเวอร์ชันเดียวหรือช่วงของเวอร์ชันได้ ตัวอย่าง:
1.0.2
1.1.0-1.1.7
<1.2.0
1.1.*
ส่วนขยายเวอร์ชันที่เลิกใช้งานแล้วจะไม่แสดงในฮับส่วนขยายและไม่สามารถติดตั้งได้ ผู้ใช้ที่มีโปรเจ็กต์ที่ติดตั้งเวอร์ชันที่เลิกใช้งานแล้วจะเห็นข้อความแจ้งให้อัปเกรด ผู้ใช้จะยังใช้และกำหนดค่าส่วนขยายอีกครั้งได้ในระหว่างนี้
หากเลิกใช้งานส่วนขยายทุกเวอร์ชัน ระบบจะถือว่าเป็นส่วนขยายที่เลิกใช้งานแล้ว และจะถูกนำออกจากฮับส่วนขยาย การอัปโหลดส่วนขยายที่เลิกใช้งานแล้วเวอร์ชันใหม่จะเริ่มการตรวจสอบโดยอัตโนมัติ และหากได้รับอนุมัติ ส่วนขยายดังกล่าวจะเผยแพร่ในฮับส่วนขยายอีกครั้ง
หากต้องการเปลี่ยนกลับการเลิกใช้งาน ให้ใช้หน้าแดชบอร์ดของผู้เผยแพร่โฆษณา หรือเรียกใช้คำสั่ง ext:dev:undeprecate
ของ Firebase CLI ดังนี้
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
ภาคผนวก: การแก้ปัญหาข้อผิดพลาดของบิลด์
เมื่อคุณอัปโหลดส่วนขยาย แบ็กเอนด์จะสร้างซอร์สโค้ดโดยใช้กระบวนการต่อไปนี้ก่อน
โคลนที่เก็บ GitHub และตรวจสอบการอ้างอิงแหล่งที่มาที่ระบุ
ติดตั้งทรัพยากร Dependency ของ NPM โดยเรียกใช้
npm clean-install
ในทุกไดเรกทอรีแหล่งที่มาของฟังก์ชันที่ระบุในextension.yaml
(ดูsourceDirectory
ในทรัพยากร Cloud Function)โปรดทราบดังต่อไปนี้
ไฟล์
package.json
แต่ละไฟล์ต้องมีไฟล์package-lock.json
ที่เกี่ยวข้อง ดูข้อมูลเพิ่มเติมได้ที่ npm-ciสคริปต์หลังการติดตั้งจะไม่ทำงานระหว่างการติดตั้งทรัพยากร Dependency หากซอร์สโค้ดของคุณใช้สคริปต์หลังการติดตั้ง ให้เปลี่ยนโครงสร้างภายในโค้ดก่อนที่จะอัปโหลด
สร้างโค้ดโดยเรียกใช้
npm run build
ในทุกไดเรกทอรีแหล่งที่มาของฟังก์ชันที่ระบุไว้ในextension.yaml
เฉพาะไดเรกทอรีรากของส่วนขยายเท่านั้นที่จะได้รับการบันทึกในแพ็กเกจส่วนขยายสุดท้ายที่จะแชร์
หากพบข้อผิดพลาดของบิลด์ขณะอัปโหลดส่วนขยาย ให้ทำซ้ำขั้นตอนบิลด์ข้างต้นในไดเรกทอรีใหม่จนกว่าจะไม่มีข้อผิดพลาด แล้วลองอัปโหลดอีกครั้ง