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