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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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
    

อัปโหลดเวอร์ชันที่อัปเดตแล้ว

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

เลิกใช้งานส่วนขยายเวอร์ชันหนึ่ง

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

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

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

  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.*

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

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

หากต้องการยกเลิกการเลิกใช้งาน ให้ใช้แดชบอร์ดของผู้เผยแพร่โฆษณา หรือเรียกใช้คำสั่ง Firebase CLI ต่อไปนี้ ext:dev:undeprecate

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

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

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

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

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

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

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

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

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

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

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