การอ้างอิงสำหรับ 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: [email protected]
  url: https://example.com/
contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: [email protected]
    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
รายการสตริง
(ไม่บังคับ)
แท็กเพื่อช่วยให้ผู้ใช้ค้นพบส่วนขยาย แท็กต่อไปนี้จะเชื่อมโยงกับหมวดหมู่ในฮับส่วนขยาย marketing, messaging, payments, search, shipping, social, utilities, ai
sourceUrl
สตริง
(ไม่บังคับ)
URL สาธารณะที่เข้าถึงไดเรกทอรีส่วนขยายได้
releaseNotesUrl
สตริง
(ไม่บังคับ)
URL สาธารณะที่เข้าถึงบันทึกประจำรุ่นสำหรับส่วนขยายได้
author
ออบเจ็กต์ผู้เขียน 1 รายการ
(ไม่บังคับ)

ผู้เขียนหลักและผู้ติดต่อสำหรับส่วนขยาย

author:
  authorName: Your Company
  email: [email protected]
  url: https://example.com/
ช่องผู้แต่ง
authorName
สตริง
(ต้องระบุ)

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

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

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

ผู้เขียนคนอื่นๆ ที่มีส่วนร่วมในชิ้นงาน

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: [email protected]
    url: https://github.com/their-org/
ช่องผู้แต่ง
authorName
สตริง
(ต้องระบุ)

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

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

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

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

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

หากไม่ระบุ ค่าเริ่มต้นจะเป็น 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
สตริง
(ไม่บังคับ)

คำอธิบายโดยละเอียดสำหรับพารามิเตอร์ แสดงต่อผู้ใช้เมื่อระบบแจ้งให้ป้อนค่าพารามิเตอร์

รองรับ Markdown

example
สตริง
(ไม่บังคับ)
ตัวอย่างค่าสําหรับพารามิเตอร์
default
สตริง
(ไม่บังคับ)
ค่าเริ่มต้นสำหรับพารามิเตอร์ในกรณีที่ผู้ใช้ปล่อยค่าของพารามิเตอร์ว่างไว้
validationRegex
สตริง
(ไม่บังคับ)
นิพจน์ทั่วไปสำหรับการตรวจสอบค่าที่ผู้ใช้กําหนดค่าไว้ของพารามิเตอร์ ไวยากรณ์ของ Google RE2
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 Function ที่รวมอยู่ในส่วนขยาย ไวยากรณ์การประกาศทรัพยากรของฟังก์ชันรุ่นที่ 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
(แนะนำ)

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

httpsTrigger
or
eventTrigger
or
scheduleTrigger
or
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
(แนะนำ)

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

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

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

  • ค่าเริ่มต้น: 60
  • ค่าสูงสุด: 540
serviceConfig.availableMemory
(ไม่บังคับ)
ปริมาณหน่วยความจำที่ใช้ได้สำหรับฟังก์ชัน ค่าเริ่มต้นคือ 256M หน่วยที่รองรับคือ k, M, G, Mi, Gi หากไม่ได้ระบุหน่วย ระบบจะตีความค่าเป็นไบต์
eventTrigger properties
eventTrigger.eventType
(ต้องระบุ)
ประเภทเหตุการณ์ที่จะฟัง ดูประเภทเหตุการณ์ที่ใช้ได้กับผลิตภัณฑ์แต่ละรายการได้ที่เขียนฟังก์ชัน Cloud สำหรับส่วนขยาย
eventTrigger.eventFilters
(ไม่บังคับ)
ตัวกรองที่จำกัดเหตุการณ์ที่จะรับฟังเพิ่มเติม เช่น คุณอาจฟังเฉพาะเหตุการณ์ที่ตรงกับรูปแบบทรัพยากรที่เฉพาะเจาะจง ดูข้อมูลเกี่ยวกับการกรองเหตุการณ์แต่ละประเภทได้ที่เขียนฟังก์ชัน Cloud สำหรับส่วนขยาย
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 ในหัวข้อเพิ่มฮุกผู้ใช้ไปยังส่วนขยาย

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