เผยแพร่ส่วนขยาย

หน้านี้จะอธิบายวิธีเผยแพร่ส่วนขยายในฮับส่วนขยาย

ก่อนเริ่มต้น

หากต้องการเผยแพร่ส่วนขยาย คุณจะต้องลงทะเบียนเป็นผู้เผยแพร่ส่วนขยายก่อน

แหล่งที่มาที่ยืนยันได้

ส่วนขยายทั้งหมดที่เผยแพร่ในฮับส่วนขยายต้องมีแหล่งที่มาที่ยืนยันได้โดยสาธารณะ แทนที่จะอัปโหลดซอร์สโค้ดของส่วนขยายไปยังศูนย์ส่วนขยายโดยตรง คุณจะต้องระบุตำแหน่งต้นทางและฮับส่วนขยายจะดาวน์โหลดและสร้างขึ้นจากที่นั่น

ซึ่งในปัจจุบันนี้หมายถึงการทำให้ซอร์สโค้ดของส่วนขยายพร้อมใช้งานในที่เก็บของ GitHub สาธารณะ

การอัปโหลดจากแหล่งที่มาที่ยืนยันได้มีประโยชน์หลายประการดังนี้

  • ผู้ใช้สามารถตรวจสอบซอร์สโค้ดของส่วนขยายที่จะติดตั้งได้
  • คุณตรวจสอบได้ว่าคุณอัปโหลดเฉพาะสิ่งที่ตั้งใจจะอัปโหลดเท่านั้น เช่น ไฟล์ที่อยู่ระหว่างดำเนินการ หรือไฟล์ที่หลงเหลืออยู่ซึ่งอยู่ระหว่างการพัฒนา เป็นต้น

รอบการพัฒนาที่แนะนำ

เครื่องมือการพัฒนาของ Firebase Extensions รองรับการอัปโหลดส่วนขยายเวอร์ชันก่อนเผยแพร่ ซึ่งทำให้สามารถทดสอบส่วนขยายและขั้นตอนการติดตั้งส่วนขยายได้อย่างง่ายดายในสภาพแวดล้อมเดียวกันที่จะเผยแพร่ส่วนขยายเหล่านั้นในที่สุด

ความสามารถนี้ทําให้เกิดวงจรการพัฒนาในลักษณะต่อไปนี้

  1. พัฒนาและทำซ้ำส่วนขยายอย่างรวดเร็วโดยใช้ชุดโปรแกรมจำลอง Firebase

  2. ทดสอบส่วนขยายในโปรเจ็กต์จริงโดยการติดตั้งจากต้นทางในเครื่อง โดยทำดังนี้

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
    
  3. อัปโหลดเวอร์ชันก่อนเผยแพร่ไปยังฮับส่วนขยาย (ดูด้านล่าง) แจกจ่ายลิงก์การติดตั้งสำหรับการทดสอบที่กว้างขึ้น และทำซ้ำโดยการอัปโหลดเวอร์ชันก่อนเผยแพร่เพิ่มเติมตามที่จำเป็น

  4. อัปโหลดเวอร์ชันล่าสุดที่มีความเสถียรไปยังฮับส่วนขยาย (ดูด้านล่าง) แล้วส่งเข้ารับการตรวจสอบ หากส่วนขยายผ่านการตรวจสอบ ส่วนขยายจะได้รับการเผยแพร่ในฮับส่วนขยาย

  5. เพิ่มหมายเลขเวอร์ชันใน extension.yaml และทำซ้ำรอบนี้สำหรับส่วนขยายเวอร์ชันถัดไป

อัปโหลดส่วนขยายใหม่

วิธีอัปโหลดส่วนขยายเป็นครั้งแรก

  1. ไม่บังคับ: ส่งโค้ดไปยังที่เก็บ GitHub สาธารณะ

  2. เรียกใช้คำสั่ง 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 ให้อัปเกรด

หากต้องการอัปโหลดการอัปเดต ให้ทำดังนี้

  1. ไม่บังคับ: ส่งโค้ดของคุณไปยังที่เก็บ Git สาธารณะ

  2. เรียกใช้คำสั่ง 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
    

ส่งส่วนขยายสำหรับการเผยแพร่

เมื่อพร้อมที่จะเผยแพร่ส่วนขยายต่อสาธารณะ ให้ทำดังนี้

  1. คอมมิตโค้ดของคุณไปยังที่เก็บ Git สาธารณะ (ต้องระบุสำหรับรุ่นที่เผยแพร่ต่อสาธารณะ)

  2. เรียกใช้คำสั่ง ext:dev:upload ของ Firebase CLI โดยระบุ stable เป็นขั้นตอนการเผยแพร่

    firebase ext:dev:upload your_publisher_id/your_extension_id
    
  3. หากคุณเผยแพร่ส่วนขยายเวอร์ชันหนึ่งมาก่อน การอัปโหลดรุ่นที่เสถียรรุ่นใหม่จะส่งส่วนขยายเข้ารับการตรวจสอบโดยอัตโนมัติ

    หากคุณอัปโหลดรุ่นที่เสถียรรุ่นแรกของส่วนขยาย ให้ค้นหาส่วนขยายนั้นในหน้าแดชบอร์ดของผู้เผยแพร่โฆษณา แล้วคลิกเผยแพร่ไปยังฮับส่วนขยาย

เมื่อส่งแล้ว การตรวจสอบอาจใช้เวลา 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 ของการอัปเดตความปลอดภัยที่สำคัญ คุณต้องป้องกันไม่ให้ผู้ใช้ใหม่ติดตั้งเวอร์ชันเก่าและสนับสนุนให้ผู้ใช้ที่มีอยู่อัปเกรด

หากต้องการเลิกใช้งานส่วนขยายเวอร์ชันใดเวอร์ชันหนึ่ง ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้

แดชบอร์ดผู้เผยแพร่โฆษณา

  1. ในแดชบอร์ดผู้เผยแพร่โฆษณา คลิกส่วนขยายเพื่อเปิดมุมมองรายละเอียด
  2. เลือกเวอร์ชันที่ต้องการเลิกใช้งาน
  3. คลิกเลิกใช้งานเวอร์ชัน

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

ภาคผนวก: การแก้ปัญหาข้อผิดพลาดของบิลด์

เมื่อคุณอัปโหลดส่วนขยาย แบ็กเอนด์จะสร้างซอร์สโค้ดโดยใช้กระบวนการต่อไปนี้ก่อน

  1. โคลนที่เก็บ GitHub และตรวจสอบการอ้างอิงแหล่งที่มาที่ระบุ

  2. ติดตั้งทรัพยากร Dependency ของ NPM โดยเรียกใช้ npm clean-install ในทุกไดเรกทอรีแหล่งที่มาของฟังก์ชันที่ระบุใน extension.yaml (ดู sourceDirectory ในทรัพยากร Cloud Function)

    โปรดทราบดังต่อไปนี้

    • ไฟล์ package.json แต่ละไฟล์ต้องมีไฟล์ package-lock.json ที่เกี่ยวข้อง ดูข้อมูลเพิ่มเติมได้ที่ npm-ci

    • สคริปต์หลังการติดตั้งจะไม่ทำงานระหว่างการติดตั้งทรัพยากร Dependency หากซอร์สโค้ดของคุณใช้สคริปต์หลังการติดตั้ง ให้เปลี่ยนโครงสร้างภายในโค้ดก่อนที่จะอัปโหลด

  3. สร้างโค้ดโดยเรียกใช้ npm run build ในทุกไดเรกทอรีแหล่งที่มาของฟังก์ชันที่ระบุไว้ใน extension.yaml

เฉพาะไดเรกทอรีรากของส่วนขยายเท่านั้นที่จะได้รับการบันทึกในแพ็กเกจส่วนขยายสุดท้ายที่จะแชร์

หากพบข้อผิดพลาดของบิลด์ขณะอัปโหลดส่วนขยาย ให้ทำซ้ำขั้นตอนบิลด์ข้างต้นในไดเรกทอรีใหม่จนกว่าจะไม่มีข้อผิดพลาด แล้วลองอัปโหลดอีกครั้ง