การอ้างอิงสำหรับ extensions.yaml

ไฟล์ข้อกำหนดของส่วนขยาย (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
สตริง
(ต้องระบุ)

เวอร์ชันของส่วนขยาย

ต้องใช้การกำหนดเวอร์ชัน Semver (เช่น 1.2.0)

specVersion
สตริง
(ต้องระบุ)

เวอร์ชันของข้อกำหนด Firebase Extensions

ค่าปัจจุบัน: v1beta

license
สตริง
(ไม่บังคับ)

ใบอนุญาตสำหรับส่วนขยาย

ส่วนขยายของคุณต้องได้รับอนุญาตโดยใช้ Apache-2.0

billingRequired
บูลีน
(ไม่บังคับ)

ไม่ว่าบริการที่ส่วนขยายใช้จะต้องมีบัญชีสำหรับการเรียกเก็บเงินของ Firebase ระดับชำระเงินหรือไม่

ตั้งค่าเป็น true เสมอ

displayName
สตริง
(ไม่บังคับ)

ชื่อที่แสดงที่จำง่ายสำหรับส่วนขยาย (3-5 คำ)

40 ตัว

description
สตริง
(ไม่บังคับ)
คำอธิบายสั้นๆ ของงานที่ส่วนขยายของคุณทำ (~1 ประโยค)
icon
สตริง
(ไม่บังคับ)

ไฟล์ที่จะใช้เป็นไอคอนของส่วนขยายใน extensions.dev และ คอนโซล Firebase

ไฟล์นี้ต้องเป็น PNG สี่เหลี่ยมจัตุรัสขนาดระหว่าง 512x512 ถึง 1024x1024 พิกเซล วางไฟล์ไว้ในไดเรกทอรีเดียวกับ extension.yaml โดยคุณ จะระบุไดเรกทอรีย่อยไม่ได้

โปรดคำนึงถึงหลักเกณฑ์ต่อไปนี้เมื่อออกแบบไอคอนสำหรับส่วนขยาย

  • เลือกสีพื้นหลังและสีอาร์ตเวิร์กที่เหมาะสมกับแบรนด์
  • ใช้สีไอคอนแบบเรียบง่ายโดยใช้เพียง 2 สี การใช้หลายสี อาจทำให้ไอคอนดูรก
  • ด้วยเหตุผลเดียวกันนี้ จึงไม่ควรใช้การไล่ระดับสีในไอคอน ไล่ระดับสี สังเกตได้ยากเมื่อมีขนาดเล็กและทำให้ไอคอนดู ซับซ้อน
  • ใช้ภาพที่เรียบง่ายและไม่ซ้ำใครซึ่งสื่อถึงฟังก์ชันการทำงานของส่วนขยาย
  • หากบริษัทสร้างส่วนขยายหลายรายการ อย่าใช้โลโก้เป็นไอคอน ผู้ใช้จะแยกความแตกต่างระหว่างส่วนขยายของคุณได้ยาก
  • ทำให้อาร์ตเวิร์กเป็นภาพกราฟิกที่โดดเด่น อย่าใช้ภาพที่มีความละเอียดสูงหรือซับซ้อน ซึ่งจะแสดงผลได้ไม่ดีในขนาดเล็ก
  • อย่าใส่คำที่อธิบายว่าส่วนขยายทำอะไร ข้อความมักจะอ่านไม่ออกในขนาดที่เล็กกว่า
tags
list of strings
(ไม่บังคับ)
แท็กเพื่อช่วยให้ผู้ใช้ค้นพบส่วนขยายของคุณ แท็กต่อไปนี้จะเชื่อมโยงกับหมวดหมู่ในฮับส่วนขยาย 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/
ฟิลด์ผู้เขียน
authorName
สตริง
(ต้องระบุ)

ชื่อผู้เขียน

อาจเป็นบุคคล บริษัท องค์กร ฯลฯ

email
สตริง
(ไม่บังคับ)
อีเมลของผู้เขียน
url
สตริง
(ไม่บังคับ)
URL สาธารณะที่เข้าถึงข้อมูลเกี่ยวกับผู้เขียนได้
contributors
รายการออบเจ็กต์ผู้เขียน
(ไม่บังคับ)

ผู้เขียนร่วมเพิ่มเติมสำหรับส่วนขยาย

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
ฟิลด์ผู้เขียน
authorName
สตริง
(ต้องระบุ)

ชื่อผู้เขียน

อาจเป็นบุคคล บริษัท องค์กร ฯลฯ

email
สตริง
(ไม่บังคับ)
อีเมลของผู้เขียน
url
สตริง
(ไม่บังคับ)
URL สาธารณะที่เข้าถึงข้อมูลเกี่ยวกับผู้เขียนได้

Firebase และ Google Cloud APIs

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

จำกัดขอบเขตของบทบาทไว้ที่ทรัพยากรนี้

หากละไว้ ค่าเริ่มต้นจะเป็น projects/${project_id} ดูหัวข้อลด ขอบเขตของบทบาท

บริการภายนอก

ฟิลด์เหล่านี้ระบุบริการที่ไม่ใช่ Firebase และไม่ใช่ของ Google ที่ส่วนขยายใช้ (โดยปกติคือ REST API) แพลตฟอร์มส่วนขยาย Firebase ไม่ได้มีวิธีเปิดใช้หรือให้สิทธิ์สำหรับบริการเหล่านี้โดยอัตโนมัติ

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
สตริง
(ไม่บังคับ)
นิพจน์ทั่วไปสำหรับการตรวจสอบค่าที่ผู้ใช้กำหนดค่าของพารามิเตอร์ ไวยากรณ์ RE2 ของ Google
validationErrorMessage
สตริง
(ไม่บังคับ)
ข้อความแสดงข้อผิดพลาดที่จะแสดงหากการตรวจสอบนิพจน์ทั่วไปไม่สำเร็จ
required
บูลีน
(ไม่บังคับ)
กำหนดว่าผู้ใช้จะส่งสตริงว่างได้หรือไม่เมื่อระบบ แจ้งให้ระบุค่าของพารามิเตอร์ ค่าเริ่มต้นคือ true
immutable
บูลีน
(ไม่บังคับ)

กำหนดว่าผู้ใช้จะเปลี่ยนค่าของพารามิเตอร์ได้หรือไม่หลังการติดตั้ง (เช่น หากผู้ใช้กำหนดค่าส่วนขยายใหม่) ค่าเริ่มต้นคือ false

หมายเหตุ: หากคุณกำหนดพารามิเตอร์ "location" สำหรับฟังก์ชันที่ติดตั้งใช้งานของส่วนขยาย ให้ตั้งค่าฟิลด์นี้เป็น true

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

select หรือ multiSelect

ระบุว่าพารามิเตอร์อาจเป็นค่าเดียว (select) หรือหลายค่า (multiSelect) ที่เลือกจากชุด ตัวเลือกที่กำหนดไว้ล่วงหน้า

options
รายการตัวเลือก
(ต้องระบุ)

ตัวเลือกที่ผู้ใช้เลือกได้

ฟิลด์ตัวเลือก
value
สตริง
(ต้องระบุ)
ค่าใดค่าหนึ่งที่ผู้ใช้เลือกได้ นี่คือค่าที่คุณได้รับ เมื่ออ่านค่าพารามิเตอร์ในโค้ด
label
สตริง
(ไม่บังคับ)
คำอธิบายสั้นๆ ของตัวเลือกที่เลือกได้ หากไม่ระบุ ค่าเริ่มต้นจะเป็น value

พารามิเตอร์ของทรัพยากรที่เลือกได้

พารามิเตอร์ทรัพยากรที่เลือกได้จะแจ้งให้ผู้ใช้เลือกทรัพยากร (ฐานข้อมูล อินสแตนซ์ ที่เก็บข้อมูล ฯลฯ) จากโปรเจ็กต์ของตน

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

selectresource

ระบุว่าพารามิเตอร์แสดงทรัพยากรของโปรเจ็กต์

resourceType
สตริง
(ต้องระบุ)

ประเภทของทรัพยากรที่จะแจ้งให้ผู้ใช้เลือก

ค่าที่ถูกต้อง:

  • storage.googleapis.com/Bucket
  • firestore.googleapis.com/Database
  • firebasedatabase.googleapis.com/DatabaseInstance

อย่างไรก็ตาม ปัจจุบันมีเพียงที่เก็บข้อมูล Cloud Storage เท่านั้นที่มี UI สำหรับการเลือก (ระบบจะแสดงทรัพยากรประเภทอื่นๆ เป็นช่องป้อนข้อความแบบอิสระ)

พารามิเตอร์ลับ

ระบบจะจัดการค่าลับที่ได้จากผู้ใช้ (เช่น คีย์ API) ในลักษณะที่แตกต่างกัน ดังนี้

  • ระบบจะจัดเก็บค่าข้อมูลลับโดยใช้ Secret Manager ของ Cloud เฉพาะไคลเอ็นต์ที่ได้รับอนุญาต (เช่น อินสแตนซ์ของส่วนขยายที่ติดตั้ง) เท่านั้นที่เข้าถึงค่าเหล่านี้ได้
  • เมื่อระบบแจ้งให้ผู้ใช้ระบุค่าเหล่านี้ ระบบจะไม่แสดงข้อมูลที่ผู้ใช้ป้อน
params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What is the secret value?
    type: secret
ฟิลด์พารามิเตอร์ลับ
type
สตริง

secret

ระบุว่าพารามิเตอร์เป็นค่าลับ

ทรัพยากร 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
สตริง
(ต้องระบุ)

ชื่อที่เรียกง่ายสำหรับฟังก์ชันที่ส่งออก

หากไม่ได้ระบุพร็อพเพอร์ตี้ entryPoint (ดู ด้านล่าง) ค่านี้ต้องตรงกับชื่อของฟังก์ชันในซอร์สโค้ดของฟังก์ชัน

ชื่อสุดท้ายของฟังก์ชันที่ใช้งานแล้วจะอยู่ในรูปแบบต่อไปนี้ ext-extension-instance-id-name

type
สตริง
(ต้องระบุ)
สำหรับทรัพยากรฟังก์ชันรุ่นที่ 1 ให้ทำดังนี้ firebaseextensions.v1beta.function
description
สตริง
(ต้องระบุ)

คำอธิบายสั้นๆ ว่าฟังก์ชันนี้ทำหน้าที่อะไรสำหรับส่วนขยาย

properties
(ต้องระบุ)

พร็อพเพอร์ตี้ของ Cloud Functions รุ่นที่ 1 คุณสมบัติที่สำคัญที่สุด แสดงอยู่ด้านล่าง แต่คุณสามารถดูรายการทั้งหมดได้ในข้อมูลอ้างอิงเกี่ยวกับฟังก์ชันระบบคลาวด์

พร็อพเพอร์ตี้
location
(ไม่บังคับ)

ตำแหน่งที่จะทำให้ฟังก์ชันใช้งานได้ ค่าเริ่มต้นคือ us-central1

entryPoint
(ไม่บังคับ)
ชื่อของฟังก์ชันที่ส่งออกภายในซอร์สโค้ดของฟังก์ชัน ที่ส่วนขยายควรค้นหา ค่าเริ่มต้นคือค่าของ name ด้านบน
sourceDirectory
(ไม่บังคับ)

ไดเรกทอรีที่มี package.json อยู่ที่รูท ไฟล์สำหรับซอร์สโค้ดของฟังก์ชันต้องอยู่ในไดเรกทอรีนี้ ค่าเริ่มต้นคือ functions

หมายเหตุ: ฟิลด์ main ของ package.json ระบุไฟล์สำหรับซอร์สโค้ดฟังก์ชัน (เช่น index.js)

timeout
(ไม่บังคับ)

ระยะเวลาดำเนินการสูงสุดของฟังก์ชัน

  • ค่าเริ่มต้น: 60s
  • ค่าสูงสุด: 540s
availableMemoryMb
(ไม่บังคับ)

ปริมาณหน่วยความจำใน MB ที่พร้อมใช้งานสำหรับฟังก์ชัน

  • ค่าเริ่มต้น: 256
  • ค่าที่ถูกต้อง: 128, 256, 512, 1024 และ 2048
runtime
(แนะนำ)

สภาพแวดล้อมรันไทม์สำหรับฟังก์ชัน

  • ค่าเริ่มต้นจะเป็นเวอร์ชันล่าสุดของ Node.js ที่ Cloud Functions รองรับในปัจจุบัน
  • ค่าที่ถูกต้อง nodejs14 nodejs16 nodejs18
httpsTrigger
หรือ
eventTrigger
หรือ
scheduleTrigger
หรือ
taskQueueTrigger
(ต้องมีทริกเกอร์ฟังก์ชันประเภทใดประเภทหนึ่ง)
ดูข้อมูลเฉพาะเกี่ยวกับทริกเกอร์แต่ละประเภทได้ที่เขียน Cloud Functions สำหรับส่วนขยาย

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
สตริง
(ต้องระบุ)

ชื่อที่เรียกง่ายสำหรับฟังก์ชันที่ส่งออก

หากไม่ได้ระบุพร็อพเพอร์ตี้ entryPoint (ดู ด้านล่าง) ค่านี้ต้องตรงกับชื่อของฟังก์ชันในซอร์สโค้ดของฟังก์ชัน

ชื่อสุดท้ายของฟังก์ชันที่ใช้งานแล้วจะอยู่ในรูปแบบต่อไปนี้ ext-extension-instance-id-name

type
สตริง
(ต้องระบุ)
สำหรับทรัพยากรฟังก์ชันรุ่นที่ 2 ให้ทำดังนี้ firebaseextensions.v1beta.v2function
description
สตริง
(ต้องระบุ)

คำอธิบายสั้นๆ ว่าฟังก์ชันนี้ทำหน้าที่อะไรสำหรับส่วนขยาย

properties
(ต้องระบุ)

พร็อพเพอร์ตี้ Cloud Functions รุ่นที่ 2 คุณสมบัติที่สำคัญที่สุด แสดงอยู่ด้านล่าง แต่คุณสามารถดูรายการทั้งหมดได้ในข้อมูลอ้างอิงเกี่ยวกับฟังก์ชันระบบคลาวด์

พร็อพเพอร์ตี้
location
(ไม่บังคับ)

ตำแหน่งที่จะทำให้ฟังก์ชันใช้งานได้ ค่าเริ่มต้นคือ us-central1

sourceDirectory
(ไม่บังคับ)

ไดเรกทอรีที่มี package.json อยู่ที่รูท ไฟล์สำหรับซอร์สโค้ดของฟังก์ชันต้องอยู่ในไดเรกทอรีนี้ ค่าเริ่มต้นคือ functions

หมายเหตุ: ฟิลด์ main ของ package.json ระบุไฟล์สำหรับซอร์สโค้ดฟังก์ชัน (เช่น index.js)

นอกจากนี้ ยังมีฟิลด์ประเภทออบเจ็กต์ 3 รายการที่มีพร็อพเพอร์ตี้ของตัวเอง ดังนี้

พร็อพเพอร์ตี้ buildConfig
buildConfig.runtime
(แนะนำ)

สภาพแวดล้อมรันไทม์สำหรับฟังก์ชัน

  • ค่าเริ่มต้นจะเป็นเวอร์ชันล่าสุดของ Node.js ที่ Cloud Functions รองรับในปัจจุบัน
  • ค่าที่ถูกต้อง nodejs14 nodejs16 nodejs18
buildConfig.entryPoint
(ไม่บังคับ)
ชื่อของฟังก์ชันที่ส่งออกภายในซอร์สโค้ดของฟังก์ชัน ที่ส่วนขยายควรค้นหา ค่าเริ่มต้นคือค่าของ name ด้านบน
พร็อพเพอร์ตี้ serviceConfig
serviceConfig.timeoutSeconds
(ไม่บังคับ)

ระยะเวลาดำเนินการสูงสุดของฟังก์ชัน

  • ค่าเริ่มต้น: 60
  • ค่าสูงสุด: 540
serviceConfig.availableMemory
(ไม่บังคับ)
ปริมาณหน่วยความจำที่ใช้ได้สำหรับฟังก์ชัน ค่าเริ่มต้นคือ 256M หน่วยที่รองรับคือ k M, G, Mi Gi หากไม่ได้ระบุหน่วย ระบบจะตีความค่าเป็นไบต์
พร็อพเพอร์ตี้ eventTrigger
eventTrigger.eventType
(ต้องระบุ)
ประเภทของเหตุการณ์ที่จะฟัง ดูประเภทเหตุการณ์ที่ใช้ได้สำหรับ แต่ละผลิตภัณฑ์ได้ที่ เขียนฟังก์ชัน Cloud สำหรับส่วนขยาย
eventTrigger.eventFilters
(ไม่บังคับ)
ตัวกรองที่จำกัดเหตุการณ์ที่จะฟังเพิ่มเติม เช่น คุณจะฟังได้เฉพาะเหตุการณ์ที่ตรงกับรูปแบบทรัพยากรที่เฉพาะเจาะจง เท่านั้น ดูข้อมูลเกี่ยวกับการกรองเหตุการณ์แต่ละประเภทได้ที่ เขียน Cloud Functions สำหรับส่วนขยาย
eventTrigger.channel
(ไม่บังคับ)
ชื่อของช่องที่เชื่อมโยงกับทริกเกอร์ในรูปแบบ projects/{project}/locations/{location}/channels/{channel} หากไม่ระบุพร็อพเพอร์ตี้นี้ ฟังก์ชันจะรอรับเหตุการณ์ในแชแนลเริ่มต้นของโปรเจ็กต์
eventTrigger.triggerRegion
(ไม่บังคับ)
ทริกเกอร์จะรับเฉพาะเหตุการณ์ที่มาจากภูมิภาคนี้เท่านั้น ซึ่งอาจเป็นภูมิภาคเดียวกับฟังก์ชัน ภูมิภาคอื่น หรือ หลายภูมิภาค หรือภูมิภาคทั่วโลก หากไม่ได้ระบุ ค่าเริ่มต้นจะเป็นภูมิภาคเดียวกับฟังก์ชัน

เหตุการณ์ในวงจร

เหตุการณ์วงจรช่วยให้คุณระบุฟังก์ชันที่จะทํางานเมื่อผู้ใช้ติดตั้ง อัปเดต หรือกําหนดค่าอินสแตนซ์ของส่วนขยาย ดูจัดการเหตุการณ์วงจรของส่วนขยาย

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
(ไม่บังคับ)

ระบุฟังก์ชันที่จะทำงานเมื่อผู้ใช้ติดตั้งส่วนขยาย

ข้อกำหนดของฟังก์ชัน
function
สตริง
(ต้องระบุ)

ชื่อของฟังก์ชันที่ทริกเกอร์คิวงานซึ่งจะจัดการเหตุการณ์

ต้องประกาศฟังก์ชันนี้ในส่วน resources และต้องมี taskQueue ที่กำหนด

processingMessage
สตริง
(ต้องระบุ)
ข้อความที่จะแสดงในคอนโซล Firebase ขณะที่งานกำลังดำเนินการ
onUpdate
(ไม่บังคับ)

ระบุฟังก์ชันที่จะทำงานเมื่อผู้ใช้อัปเดตส่วนขยาย

ข้อกำหนดของฟังก์ชัน
function
สตริง
(ต้องระบุ)

ชื่อของฟังก์ชันที่ทริกเกอร์คิวงานซึ่งจะจัดการเหตุการณ์

ต้องประกาศฟังก์ชันนี้ในส่วน resources และต้องมี taskQueue ที่กำหนด

processingMessage
สตริง
(ต้องระบุ)
ข้อความที่จะแสดงในคอนโซล Firebase ขณะที่งานกำลังดำเนินการ
onConfigure
(ไม่บังคับ)

ระบุฟังก์ชันที่จะทำงานเมื่อผู้ใช้กำหนดค่าส่วนขยายอีกครั้ง

ข้อกำหนดของฟังก์ชัน
function
สตริง
(ต้องระบุ)

ชื่อของฟังก์ชันที่ทริกเกอร์คิวงานซึ่งจะจัดการเหตุการณ์

ต้องประกาศฟังก์ชันนี้ในส่วน resources และต้องมี taskQueue ที่กำหนด

processingMessage
สตริง
(ต้องระบุ)
ข้อความที่จะแสดงในคอนโซล Firebase ขณะที่งานกำลังดำเนินการ

เหตุการณ์ที่กำหนดเอง (Eventarc)

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

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
สตริง
(ต้องระบุ)
คำอธิบายเหตุการณ์