หน้านี้อธิบายวิธีเผยแพร่ส่วนขยายในฮับส่วนขยาย
ก่อนเริ่มต้น
หากต้องการเผยแพร่ส่วนขยาย คุณต้องลงทะเบียนเป็นผู้เผยแพร่ส่วนขยายก่อน register as an extensions publisher
แหล่งที่มาที่ตรวจสอบได้
ส่วนขยายทั้งหมดที่เผยแพร่ในฮับส่วนขยายต้องมีแหล่งที่มาที่ตรวจสอบได้แบบสาธารณะ แทนที่จะอัปโหลดซอร์สโค้ดของส่วนขยายไปยังฮับส่วนขยายโดยตรง คุณต้องระบุตำแหน่งที่มาแทน จากนั้นฮับส่วนขยายจะดาวน์โหลดและสร้างจากตำแหน่งดังกล่าว
ปัจจุบัน วิธีนี้หมายถึงการทำให้ซอร์สโค้ดของส่วนขยายพร้อมใช้งานในที่เก็บ GitHub แบบสาธารณะ
การอัปโหลดจากแหล่งที่มาที่ตรวจสอบได้มีประโยชน์หลายประการ ดังนี้
- ผู้ใช้สามารถตรวจสอบซอร์สโค้ดของการแก้ไขส่วนขยายเวอร์ชันที่เฉพาะเจาะจงที่จะติดตั้งได้
- คุณสามารถมั่นใจได้ว่าคุณจะอัปโหลดเฉพาะสิ่งที่ต้องการอัปโหลดเท่านั้น เช่น ไม่ใช่อัปโหลดงานที่อยู่ระหว่างดำเนินการหรือไฟล์ที่ไม่เกี่ยวข้องที่เหลือจากการพัฒนา
วงจรการพัฒนาที่แนะนำ
เครื่องมือพัฒนา Firebase Extensions รองรับการอัปโหลดส่วนขยายเวอร์ชันทดลอง ซึ่งช่วยให้คุณทดสอบส่วนขยายและกระบวนการติดตั้งส่วนขยายในสภาพแวดล้อมเดียวกันกับที่จะเผยแพร่ในที่สุดได้ง่าย
ความสามารถนี้ช่วยให้วงจรการพัฒนาเป็นไปได้ดังนี้
พัฒนาและทำซ้ำส่วนขยายอย่างรวดเร็วโดยใช้ ชุดโปรแกรมจำลอง Firebase
ทดสอบส่วนขยายในโปรเจ็กต์จริงโดยติดตั้งจากแหล่งที่มาในเครื่อง
firebase ext:install /path/to/extensionfirebase deploy --only extensionsอัปโหลดเวอร์ชันทดลองไปยังฮับส่วนขยาย (ดูด้านล่าง) เผยแพร่ลิงก์การติดตั้งเพื่อการทดสอบในวงกว้าง และทำซ้ำโดยอัปโหลดส่วนขยายเวอร์ชันทดลองเพิ่มเติมตามความจำเป็น
อัปโหลดเวอร์ชันสุดท้ายที่เสถียรไปยังฮับส่วนขยาย (ดูด้านล่าง) และส่งไปรับการตรวจสอบ หากส่วนขยายผ่านการตรวจสอบ ระบบจะเผยแพร่ส่วนขยายในฮับส่วนขยาย
เพิ่มหมายเลขเวอร์ชันใน
extension.yamlและทำซ้ำวงจรนี้สำหรับส่วนขยายเวอร์ชันถัดไป
อัปโหลดส่วนขยายใหม่
วิธีอัปโหลดส่วนขยายเป็นครั้งแรก
ไม่บังคับ: คอมมิตโค้ดไปยังที่เก็บ GitHub แบบสาธารณะ
เรียกใช้คำสั่ง
ext:dev:uploadของ Firebase CLIGitHub
firebase ext:dev:upload your_publisher_id/your_extension_idแหล่งที่มาในเครื่อง
cd /path/to/extensionfirebase ext:dev:upload your_publisher_id/your_extension_id --localในการเรียกใช้คำสั่ง คุณต้องระบุข้อมูลต่อไปนี้
รหัสผู้เผยแพร่โฆษณาที่คุณ ลงทะเบียนไว้
สตริงรหัสที่จะระบุส่วนขยาย ตั้งชื่อส่วนขยายด้วย รูปแบบต่อไปนี้:
firebase-product-description-of-tasks-performedเช่นfirestore-bigquery-export
คำสั่งจะแจ้งให้คุณระบุข้อมูลเพิ่มเติม ดังนี้
หากคุณอัปโหลดจาก GitHub
URL ของที่เก็บส่วนขยายใน GitHub โปรดทราบว่าที่เก็บหนึ่งๆ สามารถมีส่วนขยายหลายรายการได้ตราบใดที่ส่วนขยายแต่ละรายการมีรูทที่ไม่ซ้ำกัน
เมื่อคุณอัปโหลดส่วนขยายใหม่เป็นครั้งแรก ระบบจะลงทะเบียนที่เก็บเป็นแหล่งที่มาหลักสำหรับส่วนขยาย
ไดเรกทอรีในที่เก็บที่มีส่วนขยาย
การอ้างอิง Git ของคอมมิตที่คุณต้องการใช้เป็นแหล่งที่มาของเวอร์ชันส่วนขยาย ซึ่งอาจเป็นแฮชของคอมมิต แท็ก หรือชื่อ Branch
ระยะการเผยแพร่ของเวอร์ชันที่คุณกำลังอัปโหลด
ระยะ
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 CLIGitHub
firebase ext:dev:upload your_publisher_id/your_extension_idคราวนี้ระบบจะไม่แจ้งให้คุณระบุที่เก็บ GitHub หรือไดเรกทอรีรากของส่วนขยาย เนื่องจากได้กำหนดค่าไว้แล้วสำหรับส่วนขยาย หากคุณได้ปรับโครงสร้างที่เก็บใหม่หรือย้ายไปยังที่เก็บใหม่แล้ว คุณสามารถเปลี่ยนที่เก็บได้ด้วยอาร์กิวเมนต์ของคำสั่ง
--rootและ--repoแหล่งที่มาในเครื่อง
cd /path/to/extensionfirebase 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
- ชื่อผู้เผยแพร่โฆษณาและการสร้างแบรนด์ระบุตัวคุณในฐานะผู้เผยแพร่โฆษณาอย่างชัดเจนและถูกต้อง
- ชื่อ คำอธิบาย และไอคอนของส่วนขยายแสดงถึงวัตถุประสงค์ของส่วนขยายอย่างชัดเจนและถูกต้อง
- คุณได้ใช้แท็กที่เป็นประโยชน์และถูกต้องแล้ว
- คุณได้ประกาศ API ของ Google และที่ไม่ใช่ของ Google ทั้งหมดที่คุณใช้ รวมถึงประเภทเหตุการณ์ทั้งหมดที่ส่วนขยายปล่อยออกมาใน
extension.yamlแล้ว - คุณขอสิทธิ์เข้าถึงเฉพาะบทบาทที่จำเป็นเพื่อให้ส่วนขยายทำงานได้ และได้อธิบายให้ผู้ใช้ทราบอย่างชัดเจนถึงสาเหตุที่คุณต้องการสิทธิ์เข้าถึงดังกล่าว
- ไฟล์ต้นฉบับได้รับอนุญาตอย่างชัดเจนภายใต้ข้อกำหนดของ
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.21.1.0-1.1.7<1.2.01.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 Functions)โปรดทราบดังต่อไปนี้
ไฟล์
package.jsonแต่ละไฟล์ต้องมีไฟล์package-lock.jsonที่เกี่ยวข้อง ดูข้อมูลเพิ่มเติมได้ที่ npm-ciระบบจะไม่เรียกใช้สคริปต์หลังการติดตั้งระหว่างการติดตั้งทรัพยากร Dependency หากบิลด์ซอร์สโค้ดของคุณขึ้นอยู่กับสคริปต์หลังการติดตั้ง ให้เปลี่ยนโครงสร้างภายในโค้ดก่อนการอัปโหลด
สร้างโค้ดโดยเรียกใช้
npm run buildในไดเรกทอรีแหล่งที่มาของฟังก์ชันแต่ละรายการที่ระบุในextension.yaml
ระบบจะบันทึกเฉพาะไดเรกทอรีรากของส่วนขยายในแพ็กเกจส่วนขยายสุดท้ายที่จะแชร์
หากพบข้อผิดพลาดในการสร้างขณะอัปโหลดส่วนขยาย ให้จำลองขั้นตอนการสร้างข้างต้นในเครื่องในไดเรกทอรีใหม่จนกว่าจะไม่มีข้อผิดพลาด จากนั้นลองอัปโหลดอีกครั้ง