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

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

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

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

แหล่งที่มาที่ตรวจสอบได้

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

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

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

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

วงจรการพัฒนาที่แนะนำ

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

ความสามารถนี้ช่วยให้วงจรการพัฒนาเป็นไปได้ดังนี้

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

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

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

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

  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 โปรดทราบว่า ที่เก็บสามารถมีส่วนขยายหลายรายการได้ตราบใดที่ส่วนขยายแต่ละรายการมี รูทที่ไม่ซ้ำกัน

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

      • ไดเรกทอรีในที่เก็บที่มีส่วนขยาย

      • การอ้างอิง 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

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

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

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

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

  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. ติดตั้งการขึ้นต่อกันของ NPM โดยการเรียกใช้ npm clean-install ในไดเรกทอรีแหล่งที่มาของฟังก์ชันทุกรายการที่ระบุใน extension.yaml (ดู sourceDirectory ในทรัพยากร Cloud Functions)

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

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

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

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

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

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