หน้านี้อธิบายวิธีที่คุณสามารถเผยแพร่ส่วนขยายบน Extensions Hub
ก่อนที่คุณจะเริ่ม
หากต้องการเผยแพร่ส่วนขยาย ขั้นแรกคุณต้อง ลงทะเบียนเป็นผู้เผยแพร่ส่วนขยาย
แหล่งที่มาที่ตรวจสอบได้
ส่วนขยายทั้งหมดที่เผยแพร่บน Extensions Hub ต้องมีแหล่งที่มาที่สามารถตรวจสอบได้แบบสาธารณะ แทนที่จะอัปโหลดซอร์สโค้ดส่วนขยายของคุณโดยตรงไปยัง Extensions Hub คุณจะต้องระบุตำแหน่งซอร์สแทน จากนั้น Extension Hub จะดาวน์โหลดและสร้างจากที่นั่น
ในปัจจุบันนี้หมายถึงการทำให้ซอร์สโค้ดส่วนขยายของคุณพร้อมใช้งานบนพื้นที่เก็บข้อมูล GitHub สาธารณะ
การอัปโหลดจากแหล่งที่ตรวจสอบได้มีข้อดีหลายประการ:
- ผู้ใช้สามารถตรวจสอบซอร์สโค้ดของการแก้ไขส่วนขยายเฉพาะที่จะติดตั้งได้
- คุณสามารถมั่นใจได้ว่าคุณจะอัปโหลดเฉพาะสิ่งที่คุณตั้งใจจะอัปโหลดเท่านั้น และไม่ ตัวอย่างเช่น งานที่กำลังดำเนินการ หรือไฟล์หลงเหลือจากการพัฒนา
วงจรการพัฒนาที่แนะนำ
เครื่องมือพัฒนาส่วนขยาย Firebase รองรับการอัปโหลดส่วนขยายเวอร์ชันก่อนเผยแพร่ ซึ่งช่วยให้คุณทดสอบส่วนขยายและขั้นตอนการติดตั้งส่วนขยายในสภาพแวดล้อมเดียวกับที่ส่วนขยายจะออกใช้ในที่สุดได้อย่างง่ายดาย
ความสามารถนี้ทำให้วงจรการพัฒนาเป็นไปได้ดังต่อไปนี้:
พัฒนาและทำซ้ำส่วนขยายของคุณอย่างรวดเร็วโดยใช้ Firebase Emulator Suite
ทดสอบส่วนขยายของคุณในโครงการจริงโดยการติดตั้งจากแหล่งที่มาในเครื่อง:
firebase ext:install /path/to/extension
firebase deploy --only extensions
อัปโหลดเวอร์ชันก่อนเผยแพร่ไปยัง Extensions Hub (ดูด้านล่าง) แจกจ่ายลิงก์การติดตั้งเพื่อการทดสอบในวงกว้าง และทำซ้ำโดยอัปโหลดเวอร์ชันก่อนเผยแพร่เพิ่มเติมตามความจำเป็น
อัปโหลดเวอร์ชันสุดท้ายที่เสถียรไปยัง Extensions Hub (ดูด้านล่าง) และส่งเพื่อตรวจสอบ หากส่วนขยายผ่านการตรวจสอบ ส่วนขยายนั้นจะถูกเผยแพร่บน 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
ในการเรียกใช้คำสั่งของคุณ คุณระบุสิ่งต่อไปนี้:
รหัสผู้เผยแพร่ที่คุณ ลงทะเบียน
สตริง ID ที่จะระบุส่วนขยาย ตั้งชื่อส่วนขยายของคุณด้วยรูปแบบต่อไปนี้:
firebase-product - description-of-tasks-performed
ตัวอย่างเช่น:firestore-bigquery-export
คำสั่งจะแจ้งให้คุณทราบข้อมูลเพิ่มเติม:
หากคุณกำลังอัพโหลดจาก GitHub:
URL ไปยังที่เก็บส่วนขยายใน GitHub โปรดทราบว่าพื้นที่เก็บข้อมูลสามารถมีส่วนขยายได้หลายรายการตราบใดที่แต่ละส่วนขยายมีรูทที่ไม่ซ้ำกัน
เมื่อคุณอัปโหลดส่วนขยายใหม่เป็นครั้งแรก พื้นที่เก็บข้อมูลนั้นจะถูกลงทะเบียนเป็นแหล่ง Canonical สำหรับส่วนขยายของคุณ
ไดเร็กทอรีในพื้นที่เก็บข้อมูลที่มีส่วนขยายของคุณ
ข้อมูลอ้างอิง Git ของคอมมิตที่คุณต้องการสร้างแหล่งที่มาของเวอร์ชันส่วนขยาย ซึ่งอาจเป็นคอมมิตแฮช แท็ก หรือชื่อสาขา
ขั้นตอนการเผยแพร่เวอร์ชันที่คุณกำลังอัปโหลด
ขั้นตอน
alpha
beta
และrc
(ตัวเลือกการเผยแพร่) มีไว้สำหรับการอัปโหลดเวอร์ชันก่อนเผยแพร่เพื่อให้ผู้ทดสอบติดตั้ง ใช้ขั้นตอนใดขั้นตอนหนึ่งเหล่านี้ในการอัปโหลดส่วนขยายใหม่ครั้งแรกระยะ
stable
จะใช้สำหรับการเผยแพร่สู่สาธารณะเพื่อเผยแพร่บน Extensions Hub การอัปโหลดรุ่นstable
จะเป็นการเริ่มการตรวจสอบโดยอัตโนมัติ และหากผ่าน ก็จะเผยแพร่ส่วนขยายนั้นด้วย
โปรดสังเกตว่าคุณไม่ได้ระบุหมายเลขเวอร์ชัน ค่านี้มาจากไฟล์
extension.yaml
เมื่อคุณอัปโหลดส่วนขยายเวอร์ชันก่อนเผยแพร่ ขั้นตอนและหมายเลขการอัปโหลดจะถูกต่อท้ายเวอร์ชัน ตัวอย่างเช่น หากextension.yaml
ระบุเวอร์ชัน 1.0.1 และคุณอัปโหลดตัวเลือกที่เผยแพร่ ก็จะได้ผลลัพธ์เป็นเวอร์ชัน1.0.1-rc.0
; การอัปโหลดผู้สมัครรุ่นอื่นที่เป็นเวอร์ชันเดียวกันจะเพิ่มจำนวนโดยอัตโนมัติ ซึ่งส่งผลให้เป็น1.0.1-rc.1
และอื่นๆ
เมื่อคุณได้อัปโหลดส่วนขยายเวอร์ชันก่อนเผยแพร่แล้ว คุณสามารถแชร์กับผู้อื่นเพื่อทำการทดสอบได้ ผู้ใช้สามารถติดตั้งส่วนขยายของคุณได้สองวิธี:
ด้วยคอนโซล : ผู้ใช้สามารถติดตั้งส่วนขยายได้โดยคลิกลิงก์ที่มีรูปแบบต่อไปนี้:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
คุณสามารถแชร์ลิงก์โดยตรงกับผู้ทดสอบของคุณได้
ด้วย CLI : ผู้ใช้สามารถติดตั้งส่วนขยายได้โดยส่งสตริง ID ส่วนขยายไปยังคำสั่ง
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
หากคุณเคยเผยแพร่เวอร์ชันของส่วนขยายของคุณก่อนหน้านี้ การอัปโหลดเวอร์ชันที่เสถียรใหม่จะส่งส่วนขยายเข้ารับการตรวจสอบโดยอัตโนมัติ
หากคุณอัปโหลดส่วนขยายที่เสถียรรุ่นแรก ให้ค้นหาส่วนขยายบน แดชบอร์ดผู้เผยแพร่โฆษณา ของคุณ แล้วคลิก เผยแพร่ไปยัง Extensions Hub
เมื่อส่งแล้ว การตรวจสอบอาจใช้เวลา 2-3 วัน หากได้รับการยอมรับ ส่วนขยายจะถูกเผยแพร่ไปยัง Extensions Hub หากถูกปฏิเสธ คุณจะได้รับข้อความอธิบายเหตุผล จากนั้นคุณสามารถแก้ไขปัญหาที่ได้รับรายงานแล้วส่งเข้ารับการตรวจสอบอีกครั้ง
เพื่อเร่งการตรวจสอบและเพิ่มโอกาสในการผ่านการทดสอบครั้งแรก ก่อนที่จะส่ง ให้ตรวจสอบสิ่งต่อไปนี้อีกครั้ง:
- คุณได้ทดสอบส่วนขยายและกระบวนการติดตั้งอย่างละเอียดแล้ว
- เอกสารของคุณครบถ้วนและถูกต้อง และแสดงผลได้ดีในคอนโซล 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.*
ส่วนขยายเวอร์ชันที่เลิกใช้งานจะไม่แสดงอยู่ใน Extensions Hub และไม่สามารถติดตั้งได้ ผู้ใช้ที่มีโปรเจ็กต์ที่ติดตั้งเวอร์ชันที่เลิกใช้แล้วจะเห็นข้อความแนะนำให้อัปเกรด ในระหว่างนี้พวกเขายังคงใช้และกำหนดค่าส่วนขยายอีกครั้งได้
หากส่วนขยายทุกเวอร์ชันเลิกใช้งานแล้ว ส่วนขยายจะถือว่าเลิกใช้งานแล้วและจะถูกเพิกถอนออกจาก Extensions Hub การอัปโหลดเวอร์ชันใหม่ของส่วนขยายที่เลิกใช้งานแล้วจะเป็นการเริ่มการตรวจสอบโดยอัตโนมัติ และเมื่อได้รับการยอมรับแล้ว จะเผยแพร่ส่วนขยายนั้นบน Extensions Hub อีกครั้ง
หากต้องการย้อนกลับการเลิกใช้ ให้ใช้แดชบอร์ดผู้เผยแพร่ หรือเรียกใช้คำสั่ง ext:dev:undeprecate
ของ Firebase CLI:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
ภาคผนวก: การแก้ไขปัญหาข้อผิดพลาดของบิลด์
เมื่อคุณอัปโหลดส่วนขยาย แบ็กเอนด์จะสร้างซอร์สโค้ดของคุณก่อนโดยใช้กระบวนการต่อไปนี้:
โคลนพื้นที่เก็บข้อมูล GitHub ของคุณและตรวจสอบแหล่งอ้างอิงที่ระบุ
ติดตั้งการพึ่งพา NPM โดยการรัน
npm clean-install
ในทุกไดเรกทอรีต้นทางของฟังก์ชันที่ระบุในextension.yaml
(ดูsourceDirectory
ใน ทรัพยากรของฟังก์ชันคลาวด์ )หมายเหตุสิ่งต่อไปนี้:
ไฟล์
package.json
แต่ละไฟล์ต้องมีไฟล์package-lock.json
ที่สอดคล้องกัน สำหรับข้อมูลเพิ่มเติม โปรดดูที่ npm-ciสคริปต์หลังการติดตั้งจะไม่ทำงานระหว่างการติดตั้งการขึ้นต่อกัน หากบิลด์ซอร์สโค้ดของคุณอาศัยสคริปต์หลังการติดตั้ง ให้ปรับโครงสร้างใหม่ก่อนที่จะอัปโหลด
สร้างโค้ดของคุณโดยการรัน
npm run build
ในทุกไดเร็กทอรีซอร์สของฟังก์ชันที่ระบุในextension.yaml
เฉพาะไดเร็กทอรีรากของส่วนขยายของคุณเท่านั้นที่จะถูกบันทึกไว้ในแพ็คเกจส่วนขยายสุดท้ายที่จะแชร์
หากคุณได้รับข้อผิดพลาดในการสร้างขณะอัปโหลดส่วนขยาย ให้ทำซ้ำขั้นตอนการสร้างด้านบนในเครื่องในไดเร็กทอรีใหม่จนกว่าจะไม่มีข้อผิดพลาด จากนั้นลองอัปโหลดอีกครั้ง