หน้านี้จะอธิบายวิธีเผยแพร่ส่วนขยายในฮับส่วนขยาย
ก่อนเริ่มต้น
หากต้องการเผยแพร่ส่วนขยาย ก่อนอื่นคุณต้องลงทะเบียนเป็นผู้เผยแพร่ส่วนขยาย
แหล่งที่มาที่ยืนยันได้
ส่วนขยายทั้งหมดที่เผยแพร่ในฮับส่วนขยายต้องมีแหล่งที่มาที่ยืนยันได้โดยสาธารณะ แทนที่จะอัปโหลดซอร์สโค้ดส่วนขยายไปยัง Extension Hub โดยตรง คุณจะต้องระบุตำแหน่งแหล่งที่มา แล้ว Extension Hub จะดาวน์โหลดและสร้างจากตำแหน่งนั้น
ปัจจุบันการดำเนินการนี้หมายถึงการทำให้ซอร์สโค้ดของส่วนขยายพร้อมใช้งานในที่เก็บ GitHub สาธารณะ
การอัปโหลดจากแหล่งที่มาที่ยืนยันได้มีประโยชน์หลายประการดังนี้
- ผู้ใช้สามารถตรวจสอบซอร์สโค้ดของเวอร์ชันที่เฉพาะเจาะจงของส่วนขยายที่จะติดตั้ง
- คุณสามารถตรวจสอบได้ว่าคุณอัปโหลดเฉพาะสิ่งที่ตั้งใจจะอัปโหลดเท่านั้น และไม่ได้อัปโหลดงานที่กำลังดำเนินการอยู่หรือไฟล์ที่หลุดออกมาจากการพัฒนา
วงจรการพัฒนาที่แนะนำ
เครื่องมือพัฒนาส่วนขยาย Firebase รองรับการอัปโหลดส่วนขยายเวอร์ชันก่อนเผยแพร่ ซึ่งช่วยให้คุณทดสอบส่วนขยายและกระบวนการติดตั้งส่วนขยายในสภาพแวดล้อมเดียวกับที่จะเผยแพร่ได้ง่ายๆ
ความสามารถนี้ช่วยให้วงจรการพัฒนาเป็นไปได้ดังต่อไปนี้
พัฒนาและปรับปรุงส่วนขยายอย่างรวดเร็วโดยใช้ชุดโปรแกรมจำลอง Firebase
ทดสอบส่วนขยายในโปรเจ็กต์จริงโดยติดตั้งจากแหล่งที่มาในเครื่อง ดังนี้
firebase ext:install /path/to/extension
firebase deploy --only extensions
อัปโหลดเวอร์ชันทดลองไปยัง Extensions Hub (ดูด้านล่าง) เผยแพร่ลิงก์การติดตั้งเพื่อทดสอบในวงกว้างขึ้น และทําซ้ำโดยการอัปโหลดเวอร์ชันก่อนเผยแพร่เพิ่มเติมตามจําเป็น
อัปโหลดเวอร์ชันสุดท้ายที่เสถียรไปยังฮับส่วนขยาย (ดูด้านล่าง) และส่งเพื่อรับการตรวจสอบ หากส่วนขยายผ่านการตรวจสอบ ระบบจะเผยแพร่ส่วนขยายในฮับส่วนขยาย
เพิ่มหมายเลขเวอร์ชันใน
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 โปรดทราบว่าที่เก็บอาจมีส่วนขยายหลายรายการได้ตราบใดที่ส่วนขยายแต่ละรายการมีรูทที่ไม่ซ้ำ
เมื่อคุณอัปโหลดส่วนขยายใหม่เป็นครั้งแรก ระบบจะลงทะเบียนที่เก็บเป็นแหล่งที่มาหลักสำหรับส่วนขยาย
ไดเรกทอรีในที่เก็บที่มีส่วนขยาย
การอ้างอิง 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
เลิกใช้งานเวอร์ชันของส่วนขยาย
ในบางครั้ง คุณอาจต้องการเลิกใช้งานส่วนขยายเวอร์ชันเก่า เช่น หากคุณเผยแพร่เวอร์ชันใหม่ที่แก้ไขข้อบกพร่องร้ายแรงหรืออัปเดตข้อกำหนดเบื้องต้นด้วยการอัปเดตความปลอดภัยที่สำคัญ คุณควรป้องกันไม่ให้ผู้ใช้ใหม่ติดตั้งเวอร์ชันเก่าและกระตุ้นให้ผู้ใช้เดิมอัปเกรด
หากต้องการเลิกใช้งานเวอร์ชันของส่วนขยาย ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้
แดชบอร์ดผู้เผยแพร่โฆษณา
- ในหน้าแดชบอร์ดของผู้เผยแพร่โฆษณา ให้คลิกส่วนขยายเพื่อเปิดมุมมองรายละเอียด
- เลือกเวอร์ชันที่ต้องการเลิกใช้งาน
- คลิกเลิกใช้งานเวอร์ชัน
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.*
ส่วนขยายเวอร์ชันเลิกใช้งานจะไม่แสดงในฮับส่วนขยายและติดตั้งไม่ได้ ผู้ใช้ที่ติดตั้งเวอร์ชันเลิกใช้งานในโปรเจ็กต์จะเห็นข้อความที่แนะนำให้อัปเกรด แต่ในระหว่างนี้ผู้ใช้จะยังใช้และกำหนดค่าส่วนขยายอีกครั้งได้
หากเลิกใช้งานส่วนขยายทุกเวอร์ชัน ระบบจะถือว่าเลิกใช้งานส่วนขยายนั้นและจะนำออกจากฮับส่วนขยาย การอัปโหลดส่วนขยายที่เลิกใช้งานเวอร์ชันใหม่จะเริ่มต้นการตรวจสอบโดยอัตโนมัติ และเมื่อได้รับการยอมรับแล้ว ระบบจะเผยแพร่ส่วนขยายดังกล่าวในฮับส่วนขยายอีกครั้ง
หากต้องการยกเลิกการเลิกใช้งาน ให้ใช้แดชบอร์ดของผู้เผยแพร่โฆษณา หรือเรียกใช้คำสั่ง Firebase CLI ต่อไปนี้
ext:dev:undeprecate
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ระบบจะไม่เรียกใช้สคริปต์หลังการติดตั้งระหว่างการติดตั้งข้อกำหนด หากบิลด์ซอร์สโค้ดของคุณใช้สคริปต์หลังการติดตั้ง ให้รีแฟกทอริงก่อนอัปโหลด
สร้างโค้ดโดยการเรียกใช้
npm run build
ในทุกไดเรกทอรีแหล่งที่มาของฟังก์ชันที่ระบุไว้ในextension.yaml
ระบบจะบันทึกเฉพาะไดเรกทอรีรูทของส่วนขยายไว้ในแพ็กเกจส่วนขยายสุดท้ายที่จะแชร์
หากพบข้อผิดพลาดในการบิลด์ขณะอัปโหลดส่วนขยาย ให้ทำตามขั้นตอนการสร้างข้างต้นซ้ำในเครื่องในไดเรกทอรีใหม่จนกว่าจะไม่มีข้อผิดพลาด แล้วลองอัปโหลดอีกครั้ง