การอ้างอิงสำหรับ 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
string
(ต้องระบุ)

ตัวระบุสำหรับส่วนขยาย

มีได้เฉพาะตัวอักษรพิมพ์เล็ก ตัวเลข และขีดกลาง โดยมีจำนวนอักขระสูงสุด 40 ตัว

หมายเหตุ: ระบบจะใช้ค่านี้เพื่อสร้างรหัสอินสแตนซ์ของส่วนขยาย (ซึ่งจะใช้เพื่อสร้างชื่อบัญชีบริการของส่วนขยายและทรัพยากรเฉพาะส่วนขยาย)

version
string
(ต้องระบุ)

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

ต้องเป็นไปตามการกำหนดเวอร์ชัน semver (เช่น 1.2.0)

specVersion
string
(ต้องระบุ)

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

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

license
string
(ไม่บังคับ)

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

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

billingRequired
boolean
(ไม่บังคับ)

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

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

displayName
string
(ไม่บังคับ)

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

จำนวนอักขระสูงสุด 40 ตัว

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

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

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

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

  • เลือกสีพื้นหลังและอาร์ตเวิร์กที่เหมาะกับแบรนด์
  • ใช้สีไอคอนที่เรียบง่าย โดยใช้เพียง 2 สี การใช้หลายสีอาจทำให้ไอคอนดูรกตา
  • ด้วยเหตุผลเดียวกันนี้ อย่าใช้การไล่ระดับสีในไอคอน การไล่ระดับสีจะมองเห็นได้ยากเมื่อมีขนาดเล็กและทำให้ไอคอนดูซับซ้อน
  • ใช้ภาพที่เรียบง่ายและไม่ซ้ำใครซึ่งสื่อถึงฟังก์ชันการทำงานของส่วนขยาย
  • หากบริษัทของคุณสร้างส่วนขยายหลายรายการ อย่าใช้โลโก้เป็นไอคอน ผู้ใช้จะแยกแยะส่วนขยายของคุณได้ยาก
  • ทำให้อาร์ตเวิร์กเป็นกราฟิกและโดดเด่น อย่าใช้ภาพที่ละเอียดอ่อนหรือซับซ้อน ซึ่งจะแสดงผลได้ไม่ดีในขนาดที่เล็กลง
  • อย่าใส่คำที่อธิบายสิ่งที่ส่วนขยายทำ ข้อความมักจะอ่านไม่ออกเมื่อมีขนาดเล็กลง
tags
รายการสตริง
(ไม่บังคับ)
แท็กเพื่อช่วยให้ผู้ใช้ค้นพบส่วนขยายของคุณ แท็กต่อไปนี้จะแมปกับหมวดหมู่ในฮับส่วนขยาย marketing, messaging, payments, search, shipping, social, utilities, ai
sourceUrl
string
(ไม่บังคับ)
URL สาธารณะที่เข้าถึงไดเรกทอรีส่วนขยายได้
releaseNotesUrl
string
(ไม่บังคับ)
URL สาธารณะที่เข้าถึงบันทึกประจำรุ่นของส่วนขยายได้
author
ออบเจ็กต์ผู้เขียน 1 รายการ
(ไม่บังคับ)

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

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
ฟิลด์ผู้เขียน
authorName
string
(ต้องระบุ)

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

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

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

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

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

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

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

email
string
(ไม่บังคับ)
อีเมลของผู้เขียน
url
string
(ไม่บังคับ)
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
string
(ต้องระบุ)

ชื่อของ Google API

ต้องตรงกับช่องชื่อบริการตามที่แสดงในหน้าภาพรวมของ API แต่ละรายการ (ตัวอย่าง) ในคลัง Google Cloud API

reason
string
(ต้องระบุ)
คำอธิบายสั้นๆ เกี่ยวกับสาเหตุที่ส่วนขยายต้องใช้ 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
string
(ต้องระบุ)

ชื่อของบทบาท IAM ที่จำเป็นเพื่อให้ส่วนขยายทำงานได้

ต้องเป็นบทบาทที่รองรับบทบาทใดบทบาทหนึ่ง

reason
string
(ต้องระบุ)
คำอธิบายสั้นๆ เกี่ยวกับสาเหตุที่ส่วนขยายต้องการสิทธิ์เข้าถึงที่ได้รับจากบทบาทนี้
resource
string
(ไม่บังคับ)

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

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

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

ช่องเหล่านี้ระบุบริการที่ไม่ใช่ 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
string
(ต้องระบุ)
ชื่อบริการภายนอกที่จำเป็นเพื่อให้ส่วนขยายทำงานได้
pricingUri
string
(ต้องระบุ)
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
string
(ต้องระบุ)
ชื่อพารามิเตอร์ คุณใช้ชื่อนี้เพื่ออ้างอิงค่าพารามิเตอร์ในโค้ด
label
string
(ต้องระบุ)
คำอธิบายสั้นๆ สำหรับพารามิเตอร์ แสดงต่อผู้ใช้เมื่อระบบแจ้งให้ป้อนค่าของพารามิเตอร์
description
string
(ไม่บังคับ)

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

รองรับมาร์กดาวน์

example
string
(ไม่บังคับ)
ค่าตัวอย่างสำหรับพารามิเตอร์
default
string
(ไม่บังคับ)
ค่าเริ่มต้นของพารามิเตอร์หากผู้ใช้เว้นค่าของพารามิเตอร์ไว้ว่างเปล่า
validationRegex
string
(ไม่บังคับ)
นิพจน์ทั่วไปสําหรับการตรวจสอบค่าที่ผู้ใช้กําหนดค่าของพารามิเตอร์ ไวยากรณ์ Google RE2
validationErrorMessage
string
(ไม่บังคับ)
ข้อความแสดงข้อผิดพลาดที่จะแสดงหากการตรวจสอบความถูกต้องของนิพจน์ทั่วไปไม่สำเร็จ
required
boolean
(ไม่บังคับ)
กำหนดว่าผู้ใช้จะส่งสตริงเปล่าได้หรือไม่เมื่อระบบแจ้งให้ป้อนค่าของพารามิเตอร์ ค่าเริ่มต้นคือ true
immutable
boolean
(ไม่บังคับ)

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

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

type
string
(ไม่บังคับ)
ประเภทพารามิเตอร์ พารามิเตอร์ประเภทพิเศษอาจมีข้อกำหนดเพิ่มเติมหรือการนำเสนอ 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
string
(ต้องระบุ)
ค่าหนึ่งที่ผู้ใช้เลือกได้ นี่คือค่าที่คุณจะได้รับเมื่ออ่านค่าพารามิเตอร์ในโค้ด
label
string
(ไม่บังคับ)
คำอธิบายสั้นๆ ของตัวเลือกที่เลือกได้ หากไม่ระบุ ค่าเริ่มต้นจะเป็น 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
string
(ต้องระบุ)

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

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

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

อย่างไรก็ตาม ปัจจุบันมีเพียงที่เก็บข้อมูล 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
สตริง

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

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

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

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

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

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

properties
(ต้องระบุ)

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

พร็อพเพอร์ตี้
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
string
(ต้องระบุ)

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

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

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

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

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

properties
(ต้องระบุ)

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

พร็อพเพอร์ตี้
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 Functions สำหรับส่วนขยาย
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
string
(ต้องระบุ)

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

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

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

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

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

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

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

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

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

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

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

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

processingMessage
string
(ต้องระบุ)
ข้อความที่จะแสดงในคอนโซล 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
string
(ต้องระบุ)
ตัวระบุประเภทของเหตุการณ์ สร้างตัวระบุจากฟิลด์ที่คั่นด้วยจุด 3-4 ฟิลด์ ได้แก่ ฟิลด์รหัสผู้เผยแพร่โฆษณา ชื่อส่วนขยาย และชื่อเหตุการณ์ ซึ่งเป็นฟิลด์ที่ต้องกรอก และขอแนะนำให้กรอกฟิลด์เวอร์ชันด้วย เลือกชื่อเหตุการณ์ที่ไม่ซ้ำกันและสื่อความหมายสำหรับเหตุการณ์แต่ละประเภทที่คุณเผยแพร่
description
string
(ต้องระบุ)
คำอธิบายเหตุการณ์