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

หน้านี้อธิบายวิธีที่คุณสามารถเผยแพร่ส่วนขยายบน Extensions Hub

ก่อนที่คุณจะเริ่ม

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

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

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

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

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

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

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

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

ความสามารถนี้ทำให้วงจรการพัฒนาเป็นไปได้ดังต่อไปนี้:

  1. พัฒนาและทำซ้ำส่วนขยายของคุณอย่างรวดเร็วโดยใช้ Firebase Emulator Suite

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

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

  4. อัปโหลดเวอร์ชันสุดท้ายที่เสถียรไปยัง Extensions Hub (ดูด้านล่าง) และส่งเพื่อตรวจสอบ หากส่วนขยายผ่านการตรวจสอบ ส่วนขยายนั้นจะถูกเผยแพร่บน 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
    

    ในการเรียกใช้คำสั่งของคุณ คุณระบุสิ่งต่อไปนี้:

    • รหัสผู้เผยแพร่ที่คุณ ลงทะเบียน

    • สตริง 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

หากต้องการอัปโหลดการอัปเดต:

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

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

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

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

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

แดชบอร์ดผู้จัดพิมพ์

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

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

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

หากต้องการย้อนกลับการเลิกใช้ ให้ใช้แดชบอร์ดผู้เผยแพร่ หรือเรียกใช้คำสั่ง 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 ใน ทรัพยากรของฟังก์ชันคลาวด์ )

    หมายเหตุสิ่งต่อไปนี้:

    • ไฟล์ package.json แต่ละไฟล์ต้องมีไฟล์ package-lock.json ที่สอดคล้องกัน สำหรับข้อมูลเพิ่มเติม โปรดดูที่ npm-ci

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

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

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

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