ไฟล์ข้อกำหนดของส่วนขยาย (extension.yaml
) มีส่วนขยายของ
จะประกาศทรัพยากรที่สร้างโดยส่วนขยายและ API และ
เข้าถึงที่จำเป็นโดยส่วนขยาย และกำหนดพารามิเตอร์ใดๆ ที่ผู้ใช้กำหนดค่า
ที่ได้รับจากส่วนขยาย
ตารางในหน้านี้อธิบายช่องที่มีสำหรับ extension.yaml
ข้อมูลพื้นฐานและการระบุตัวตน
name: your-extension-name
version: 1.0.0 # Semantic versioning (semver)
specVersion: v1beta # Always "v1beta"
license: Apache-2.0 # Always "Apache-2.0" (required to publish on extensions.dev)
billingRequired: true # Always "true"
displayName: Your extension name
description: >-
Description of the extension. (One or two
sentences.)
icon: icon.png
tags: [tag, anothertag]
sourceUrl: https://github.com/your-org/your-repo # GitHub repo URL
releaseNotesUrl: https://github.com/your-org/your-repo/blob/main/CHANGELOG.md
author:
authorName: Your Company
email: extensions@example.com
url: https://example.com/
contributors:
- authorName: Your Name
- authorName: Another Contributor
email: colleague@example.net
url: https://github.com/their-org/
ช่องพื้นฐาน | |||||||||
---|---|---|---|---|---|---|---|---|---|
name สตริง (ต้องระบุ) |
ตัวระบุส่วนขยาย มีได้เฉพาะตัวอักษรพิมพ์เล็ก ตัวเลข และเครื่องหมายขีดกลางเท่านั้น 40 อักขระ ขีดจำกัด หมายเหตุ: ค่านี้จะใช้ในการสร้างส่วนขยาย รหัสอินสแตนซ์ (ซึ่งจะนำไปสร้างชื่อของฟิลด์ บัญชีบริการของส่วนขยายและทรัพยากรเฉพาะส่วนขยาย) |
||||||||
version สตริง (ต้องระบุ) |
เวอร์ชันของส่วนขยาย ต้องเป็นไปตามการกำหนดเวอร์ชันเซมเวอร์ (เช่น 1.2.0) |
||||||||
specVersion สตริง (ต้องระบุ) |
เวอร์ชันของข้อกำหนดเฉพาะของ Firebase Extensions ค่าปัจจุบัน: |
||||||||
license สตริง (ไม่บังคับ) |
ใบอนุญาตสำหรับส่วนขยาย ส่วนขยายของคุณต้องได้รับอนุญาตโดยใช้ |
||||||||
billingRequired บูลีน (ไม่บังคับ) |
บริการที่ส่วนขยายใช้ต้องใช้ระดับที่เสียค่าใช้จ่ายหรือไม่ บัญชีสำหรับการเรียกเก็บเงิน Firebase ตั้งค่าเป็น |
||||||||
displayName สตริง (ไม่บังคับ) |
ชื่อที่แสดงของส่วนขยายที่สะดวก (3-5 คำ) จำนวนอักขระสูงสุด 40 ตัว |
||||||||
description สตริง (ไม่บังคับ) |
คำอธิบายสั้นๆ เกี่ยวกับงานที่ส่วนขยายทำ (ประมาณ 1 ประโยค) | ||||||||
icon สตริง (ไม่บังคับ) |
ไฟล์ที่จะใช้เป็นไอคอนของส่วนขยาย
ไฟล์นี้ต้องเป็นไฟล์สี่เหลี่ยมจัตุรัส PNG ขนาดระหว่าง 512x512 ถึง 1024x1024 พิกเซล
วางไฟล์ในไดเรกทอรีเดียวกับ โปรดคำนึงถึงหลักเกณฑ์ต่อไปนี้เมื่อออกแบบไอคอนสำหรับ ส่วนขยาย:
|
||||||||
tags รายการสตริง (ไม่บังคับ) |
แท็กเพื่อช่วยให้ผู้ใช้ค้นพบส่วนขยายของคุณ
แท็กต่อไปนี้จะแมปกับหมวดหมู่ในฮับส่วนขยาย
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities
ai
|
||||||||
sourceUrl สตริง (ไม่บังคับ) |
URL สาธารณะที่เข้าถึงไดเรกทอรีส่วนขยายได้ | ||||||||
releaseNotesUrl สตริง (ไม่บังคับ) |
URL สาธารณะที่สามารถเข้าถึงบันทึกประจำรุ่นของส่วนขยาย | ||||||||
author ออบเจ็กต์ผู้เขียน 1 รายการ (ไม่บังคับ) |
ผู้เขียนหลักและผู้ติดต่อสำหรับส่วนขยาย author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributors รายการออบเจ็กต์ผู้เขียน (ไม่บังคับ) |
ผู้เขียนที่ร่วมให้ข้อมูลเพิ่มเติมสำหรับส่วนขยาย contributors: - authorName: Your Name - authorName: Another Contributor email: colleague@example.net url: https://github.com/their-org/
|
Firebase และ Google Cloud API
ช่องเหล่านี้ระบุ Firebase และ Google API ที่ส่วนขยายใช้ เมื่อผู้ใช้ ติดตั้งส่วนขยาย ผู้ใช้เลือกที่จะเปิดใช้ API เหล่านี้โดยอัตโนมัติใน ให้กับโครงการของตน
apis:
- apiName: apiname.googleapis.com
reason: Explanation of why the extension uses this API
- apiName: anotherapiname.googleapis.com
reason: Explanation of why the extension uses this API
ช่อง API | |
---|---|
apiName สตริง (ต้องระบุ) |
ชื่อ Google API ต้องตรงกับช่องชื่อบริการตามที่ระบุไว้ในแต่ละ หน้าภาพรวมของ API (ตัวอย่าง) ใน ไลบรารี Google Cloud API |
reason สตริง (ต้องระบุ) |
คำอธิบายสั้นๆ ถึงเหตุผลที่ส่วนขยายต้องใช้ API นี้ |
บทบาท IAM
ช่องเหล่านี้ระบุบทบาท Cloud IAM ที่ส่วนขยายต้องการ บริการ บัญชีที่จัดสรรไว้สำหรับส่วนขยายจะได้รับบทบาทเหล่านี้
คุณสามารถระบุหนึ่งใน บทบาทที่รองรับ
roles:
- role: product.role
reason: Explanation of why the extension needs this level of access
- role: anotherproduct.role
resource: projects/${project_id}/resource_type/*
reason: Explanation of why the extension needs this level of access
ช่องบทบาท | |
---|---|
role สตริง (ต้องระบุ) |
ชื่อของบทบาท IAM ที่จำเป็นสำหรับการดำเนินการของส่วนขยาย ต้องเป็นหนึ่งใน บทบาทที่รองรับ |
reason สตริง (ต้องระบุ) |
คำอธิบายสั้นๆ ถึงเหตุผลที่ส่วนขยายต้องการสิทธิ์เข้าถึง บทบาทนี้ |
resource สตริง (ไม่บังคับ) |
จำกัดขอบเขตของบทบาทสำหรับทรัพยากรนี้ หากไม่ระบุ จะมีค่าเริ่มต้นเป็น |
บริการภายนอก
ช่องเหล่านี้ระบุบริการที่ไม่ใช่ Firebase และบริการที่ไม่ใช่ของ Google ที่ส่วนขยายใช้ (โดยทั่วไปคือ REST API) แพลตฟอร์ม Firebase Extensions ไม่ได้ระบุ วิธีการเปิดใช้หรือดำเนินการให้สิทธิ์สำหรับบริการเหล่านี้โดยอัตโนมัติ
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
ช่องบริการภายนอก | |
---|---|
name สตริง (ต้องระบุ) |
ชื่อบริการภายนอกที่จำเป็นสำหรับการดำเนินการของส่วนขยาย |
pricingUri สตริง (ต้องระบุ) |
URI ของข้อมูลการกำหนดราคาสำหรับบริการ |
พารามิเตอร์ที่ผู้ใช้กำหนดค่าได้
ฟิลด์เหล่านี้กำหนดพารามิเตอร์ที่ส่วนขยายทำให้ผู้ใช้สามารถใช้งานได้ เพื่อกำหนดค่า
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What do you want to set PARAM_ID to?
This is a longer description of the parameter, often phrased as a prompt
to the user.
- param: ANOTHER_PARAM_ID
label: Short description of the parameter
description: >
What do you want to set ANOTHER_PARAM_ID to?
This is a longer description of the parameter.
example: example-input
validationRegex: "^[a-zA-Z][a-zA-Z-]*[a-zA-Z]?$"
validationErrorMessage:
Must be a hyphen-delimited string of alphabetic characters
default: default-value
required: false
immutable: true
ช่องพารามิเตอร์ | |
---|---|
param สตริง (ต้องระบุ) |
ชื่อพารามิเตอร์ คุณใช้ชื่อนี้ในการอ้างอิงพารามิเตอร์ ในโค้ด |
label สตริง (ต้องระบุ) |
คำอธิบายสั้นๆ สำหรับพารามิเตอร์ แสดงต่อผู้ใช้เมื่อ สำหรับค่าของพารามิเตอร์ |
description สตริง (ไม่บังคับ) |
คำอธิบายโดยละเอียดสำหรับพารามิเตอร์ แสดงต่อผู้ใช้เมื่อ ระบบจะถามค่าของพารามิเตอร์ รองรับมาร์กดาวน์ |
example สตริง (ไม่บังคับ) |
ค่าตัวอย่างสำหรับพารามิเตอร์ |
default สตริง (ไม่บังคับ) |
ค่าเริ่มต้นของพารามิเตอร์ หากผู้ใช้เก็บค่าของพารามิเตอร์ไว้ ว่าง |
validationRegex สตริง (ไม่บังคับ) |
นิพจน์ทั่วไปสำหรับการตรวจสอบความถูกต้องของพารามิเตอร์ที่ผู้ใช้กำหนดค่า Google RE2 ไวยากรณ์ |
validationErrorMessage สตริง (ไม่บังคับ) |
ข้อความแสดงข้อผิดพลาดที่จะแสดงเมื่อตรวจสอบนิพจน์ทั่วไปไม่สำเร็จ |
required บูลีน (ไม่บังคับ) |
กำหนดว่าผู้ใช้สามารถส่งสตริงว่างหรือไม่เมื่อ
สำหรับค่าของพารามิเตอร์ ค่าเริ่มต้นคือ true
|
immutable บูลีน (ไม่บังคับ) |
กำหนดว่าผู้ใช้สามารถเปลี่ยนค่าของพารามิเตอร์หลังจาก
การติดตั้ง (เช่น ในกรณีที่กำหนดค่าส่วนขยายใหม่) ค่าเริ่มต้นคือ
หมายเหตุ: หากคุณกำหนด "ตำแหน่ง" พารามิเตอร์ที่ทำให้ใช้งานได้
ของส่วนขยาย ให้ตั้งค่าฟิลด์นี้เป็น |
type สตริง (ไม่บังคับ) |
ประเภทพารามิเตอร์ ประเภทพารามิเตอร์พิเศษอาจมี ข้อกำหนดหรืองานนำเสนอ UI ที่แตกต่างออกไป โปรดดูส่วนต่อไปนี้ |
พารามิเตอร์แบบเลือกได้และเลือกหลายรายการได้
พารามิเตอร์แบบเลือกได้และเลือกได้หลายรายการจะแจ้งให้ผู้ใช้เลือกจากรายการ ตัวเลือกที่กำหนดไว้ล่วงหน้า
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
Do you want to enable the option?
type: select
options:
- label: Yes
value: true
- label: No
value: false
- param: ANOTHER_PARAM_ID
label: Short description of the parameter
description: >-
Which options do you want to enable?
type: multiselect
options:
- value: red
- value: green
- value: blue
ช่องพารามิเตอร์แบบหลายตัวเลือก | |||||||
---|---|---|---|---|---|---|---|
type สตริง |
ระบุว่าพารามิเตอร์เป็นได้ 1 ค่า ( |
||||||
options รายการตัวเลือก (ต้องระบุ) |
ตัวเลือกที่ผู้ใช้สามารถเลือกได้
|
พารามิเตอร์ทรัพยากรที่เลือกได้
พารามิเตอร์ทรัพยากรที่เลือกได้จะแจ้งให้ผู้ใช้เลือกทรัพยากร (ฐานข้อมูล ที่เก็บข้อมูลของพื้นที่เก็บข้อมูล ฯลฯ) จากโปรเจ็กต์ได้
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
Which resource do you want to use?
type: selectresource
resourceType: product.googleapis.com/ResourceType
ช่องพารามิเตอร์ทรัพยากร | |
---|---|
type สตริง |
ระบุว่าพารามิเตอร์แสดงถึงทรัพยากรโปรเจ็กต์ |
resourceType สตริง (ต้องระบุ) |
ประเภทของทรัพยากรที่แจ้งให้ผู้ใช้เลือก ค่าที่ถูกต้อง:
อย่างไรก็ตาม ขณะนี้มีเพียงที่เก็บข้อมูล Cloud Storage เท่านั้นที่มี UI การเลือก (ทรัพยากรประเภทอื่นๆ จะแสดงเป็นช่องป้อนข้อความรูปแบบอิสระ) |
พารามิเตอร์ลับ
ระบบจะจัดการค่าข้อมูลลับที่ผู้ใช้ระบุ (เช่น คีย์ API) ด้วยวิธีที่ต่างออกไป
- ค่าข้อมูลลับจะจัดเก็บโดยใช้ Cloud Secret Manager เฉพาะไคลเอ็นต์ที่ได้รับอนุญาต (เช่น อินสแตนซ์ที่ติดตั้งของส่วนขยาย) จะเข้าถึงค่าเหล่านี้ได้
- เมื่อระบบแจ้งให้ผู้ใช้ระบุค่าเหล่านี้ ระบบจะไม่แสดงอินพุต
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
ช่องพารามิเตอร์ลับ | |
---|---|
type สตริง |
ระบุว่าพารามิเตอร์เป็นค่าลับ |
ทรัพยากร Cloud Function
ช่องเหล่านี้แจ้ง Cloud Functions ที่รวมอยู่ในส่วนขยาย แหล่งข้อมูล ไวยากรณ์การประกาศของรุ่นที่ 1 กับรุ่นที่ 2 จะแตกต่างกันเล็กน้อย ซึ่งสามารถอยู่ร่วมกันในส่วนขยายได้
Cloud Functions รุ่นที่ 1
resources:
- name: functionName
type: firebaseextensions.v1beta.function
description: >-
Description of what the function does. (One or two
sentences.)
properties:
runtime: runtime-version
eventTrigger:
eventType: google.product.event
resource: projects/_/resource/specifier
ช่องแหล่งข้อมูล | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name สตริง (ต้องระบุ) |
ชื่อที่เข้าใจง่ายสำหรับฟังก์ชันที่ส่งออก หากคุณไม่ระบุพร็อพเพอร์ตี้ ชื่อสุดท้ายของฟังก์ชันทำให้ใช้งานได้แล้วจะอยู่ในแท็ก
รูปแบบต่อไปนี้:
|
||||||||||||||||
type สตริง (ต้องระบุ) |
สำหรับแหล่งข้อมูลเกี่ยวกับฟังก์ชันรุ่นที่ 1 ให้ทำดังนี้
firebaseextensions.v1beta.function
|
||||||||||||||||
description สตริง (ต้องระบุ) |
คำอธิบายสั้นๆ เกี่ยวกับงานที่ฟังก์ชันทำ ส่วนขยาย |
||||||||||||||||
properties (ต้องระบุ) |
พร็อพเพอร์ตี้ Cloud Functions รุ่นที่ 1 พร็อพเพอร์ตี้ที่สำคัญที่สุด ด้านล่างนี้ แต่คุณสามารถดูรายการทั้งหมดได้ใน ระบบคลาวด์ การอ้างอิงฟังก์ชัน
|
Cloud Functions รุ่นที่ 2
resources:
- name: functionName
type: firebaseextensions.v1beta.v2function
description: >-
Description of what the function does. (One or two
sentences.)
properties:
buildConfig:
runtime: nodejs16
serviceConfig:
availableMemory: 512M
eventTrigger:
eventType: google.firebase.firebasealerts.alerts.v1.published
triggerRegion: global
eventFilters:
- attribute: alerttype
value: crashlytics.newFatalIssue
ช่องแหล่งข้อมูล | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name สตริง (ต้องระบุ) |
ชื่อที่เข้าใจง่ายสำหรับฟังก์ชันที่ส่งออก หากคุณไม่ระบุพร็อพเพอร์ตี้ ชื่อสุดท้ายของฟังก์ชันทำให้ใช้งานได้แล้วจะอยู่ในแท็ก
รูปแบบต่อไปนี้:
|
||||||||||||||||||||||||||||
type สตริง (ต้องระบุ) |
สำหรับทรัพยากรฟังก์ชันรุ่นที่ 2 ให้ทำดังนี้
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description สตริง (ต้องระบุ) |
คำอธิบายสั้นๆ เกี่ยวกับงานที่ฟังก์ชันทำ ส่วนขยาย |
||||||||||||||||||||||||||||
properties (ต้องระบุ) |
พร็อพเพอร์ตี้ Cloud Functions รุ่นที่ 2 พร็อพเพอร์ตี้ที่สำคัญที่สุด ด้านล่างนี้ แต่คุณสามารถดูรายการทั้งหมดได้ใน ระบบคลาวด์ การอ้างอิงฟังก์ชัน
นอกจากนี้ ยังมีช่องประเภทออบเจ็กต์ 3 ช่องที่มีพร็อพเพอร์ตี้ของตัวเองด้วย ได้แก่
|
เหตุการณ์ในวงจร
เหตุการณ์เกี่ยวกับวงจรให้คุณระบุฟังก์ชันที่จะทำงานเมื่อผู้ใช้ติดตั้ง อัปเดต หรือกำหนดค่าอินสแตนซ์ของส่วนขยายได้ โปรดดูหัวข้อจัดการเหตุการณ์ในวงจรของส่วนขยาย
lifecycleEvents:
onInstall:
function: myTaskFunction
processingMessage: Describes the task being completed
onUpdate:
function: myOtherTaskFunction
processingMessage: Describes the task being completed
onConfigure:
function: myOtherTaskFunction
processingMessage: Describes the task being completed
ช่องเหตุการณ์อายุการใช้งาน | |||||||
---|---|---|---|---|---|---|---|
onInstall (ไม่บังคับ) |
ระบุฟังก์ชันที่เรียกใช้เมื่อผู้ใช้ติดตั้ง ส่วนขยาย
|
||||||
onUpdate (ไม่บังคับ) |
ระบุฟังก์ชันที่เรียกใช้เมื่อผู้ใช้อัปเดตฟังก์ชัน ส่วนขยาย
|
||||||
onConfigure (ไม่บังคับ) |
ระบุฟังก์ชันที่เรียกใช้เมื่อผู้ใช้กำหนดค่าฟังก์ชันใหม่ ส่วนขยาย
|
เหตุการณ์ที่กำหนดเอง (Eventarc)
เหตุการณ์ที่กำหนดเองคือเหตุการณ์ที่ส่วนขยายเกิดขึ้นเพื่อให้ผู้ใช้แทรกได้ ลงในส่วนขยายของคุณได้ ดูส่วน Eventarc ใน เพิ่มฮุกผู้ใช้ลงในส่วนขยาย
events:
- type: publisher-id.extension-name.version.event-name
description: Description of the event
- type: publisher-id.extension-name.version.another-event-name
description: Description of the other event
ช่องเหตุการณ์ที่กำหนดเอง | |
---|---|
type สตริง (ต้องระบุ) |
ตัวระบุประเภทเหตุการณ์ สร้างตัวระบุจาก 3-4 ฟิลด์ที่คั่นด้วยจุด: รหัสผู้เผยแพร่โฆษณา ชื่อส่วนขยาย และชื่อเหตุการณ์ ต้องระบุฟิลด์ ขอแนะนำให้ระบุช่องเวอร์ชัน เลือกชื่อที่ไม่ซ้ำกัน และคำอธิบายเหตุการณ์แต่ละประเภท ที่คุณเผยแพร่ |
description สตริง (ต้องระบุ) |
คำอธิบายของกิจกรรม |