קובץ עזר ל-extension.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.

הערך הנוכחי: v1beta

license
מחרוזת
(אופציונלי)

הרישיון של התוסף.

נדרש רישיון לשימוש בתוסף שלך באמצעות Apache-2.0.

billingRequired
בוליאני
(אופציונלי)

האם השירותים שהתוסף משתמש בהם מחייבים רמה בתשלום חשבון לחיוב ב-Firebase.

תמיד מוגדר ל-true.

displayName
מחרוזת
(אופציונלי)

שם תצוגה ידידותי של התוסף (3-5 מילים).

מגבלה של 40 תווים.

description
מחרוזת
(אופציונלי)
תיאור קצר של המשימה שהתוסף מבצע (כמשפט אחד).
icon
מחרוזת
(אופציונלי)

קובץ שישמש כסמל התוסף ב- extensions.dev ו- המסוף Firebase.

הקובץ צריך להיות בפורמט PNG ריבועי, בגודל שבין 512x512 ל-1,024x1,024 פיקסלים. צריך לשמור את הקובץ באותה ספרייה כמו extension.yaml. עבורך אין אפשרות לציין ספריית משנה.

כשמתכננים סמל, חשוב לזכור את ההנחיות הבאות סיומת:

  • אפשר לבחור צבעי רקע וגרפיקה שמתאימים להצגת המותג.
  • כדאי ליצור צבעי סמל פשוטים וב-2 צבעים בלבד. צבעים מרובים יכול לגרום לסמל שלכם להיראות מדהים.
  • מאותה סיבה, אין להשתמש בהדרגהים בסמל שלכם. קשה להבחין בגוונים משתנים בגדלים קטנים, והם הופכים את הסמל למורכב מבחינה חזותית.
  • השתמשו בתמונות פשוטות וייחודיות שממחישות את המראה של התוסף החדשה.
  • אם החברה שלכם מפתחת כמה תוספי מודעות, אל תשתמשו בלוגו בתור הסמל. משתמשים יתקשו להבחין בין תוספים.
  • כדאי ליצור יצירות גרפיות ומודגשות. אין להשתמש בטקסט עדין או מפורט שלא יוצג היטב בגדלים קטנים יותר.
  • אין לכלול מילים שמסבירות מה התוסף עושה. הטקסט הוא שהם בדרך כלל בלתי קריאים בגדלים קטנים יותר.
tags
רשימת מחרוזות
(אופציונלי)
תגים שעוזרים למשתמשים לגלות את התוסף שלכם. התגים הבאים ממופים לקטגוריות במרכז התוספים: marketing, messaging, payments, search, shipping, social, utilities, ai
sourceUrl
מחרוזת
(אופציונלי)
כתובת URL ציבורית שבה אפשר לגשת לספריית התוספים.
releaseNotesUrl
מחרוזת
(אופציונלי)
כתובת URL ציבורית שבה אפשר לגשת למידע על הגרסה של התוסף.
author
אובייקט author אחד
(אופציונלי)

המחבר הראשי ואיש הקשר של התוסף.

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 ציבורית שבה ניתן לגשת למידע על המחבר.

ממשקי API של Firebase ו-Google Cloud

השדות האלה מציינים את ממשקי ה-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

השם צריך להתאים לשדה Service name שמופיע בדף הסקירה הכללית של כל 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
string
(חובה)

שם תפקיד ה-IAM שנדרש כדי שהתוסף יפעל

חייב להיות אחד מ- תפקידים נתמכים

reason
מחרוזת
(חובה)
תיאור קצר של הסיבה שבגללה נדרשת לתוסף גישה התפקיד הזה
resource
מחרוזת
(אופציונלי)

צריך להגביל את היקף התפקיד למשאב הזה.

אם לא מציינים את הפרמטר הזה, ברירת המחדל היא projects/${project_id}. ראו הקטנה היקף התפקידים.

שירותים חיצוניים

בשדות האלה מציינים את השירותים שאינם של Firebase ושירותים שאינם של Google שבהם התוסף משתמש (בדרך כלל ממשקי API ל-REST). פלטפורמת התוספים של 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
string
(אופציונלי)
ביטוי רגולרי לאימות של הגדרת המשתמש של הפרמטר עם ערך מסוים. Google RE2 תחביר.
validationErrorMessage
מחרוזת
(אופציונלי)
הודעת השגיאה שתוצג אם אימות הביטוי הרגולרי נכשל.
required
boolean
(אופציונלי)
ההגדרה קובעת אם המשתמש יכול לשלוח מחרוזת ריקה כשמתבקשים להזין את הערך של הפרמטר. ברירת המחדל היא true.
immutable
boolean
(אופציונלי)

המדיניות קובעת אם המשתמש יכול לשנות את ערך הפרמטר אחרי (למשל, אם הוא מגדיר מחדש את התוסף). ברירת המחדל היא false

הערה: אם מגדירים 'מיקום' הפרמטר של הפריסה הפונקציות של התוסף, מגדירים את השדה הזה ל-true.

type
מחרוזת
(אופציונלי)
סוג הפרמטר יכול להיות שיש עוד סוגים של פרמטרים. דרישות שונות או תצוגה שונה של ממשק המשתמש. פרטים נוספים זמינים בקטעים הבאים.

פרמטרים שניתנים לבחירה ולבחירה מרובה

פרמטרים שניתנים לבחירה ולבחירה מרובה מבקשים מהמשתמשים לבחור מתוך רשימה של לאפשרויות מוגדרות מראש.

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
String (מחרוזת)

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
String (מחרוזת)

selectresource

מציינת שהפרמטר מייצג משאב של פרויקט

resourceType
מחרוזת
(חובה)

סוג המשאב שהמשתמש יתבקש לבחור.

הערכים האפשריים:

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

עם זאת, כרגע רק לקטגוריות של Cloud Storage יש ממשק משתמש לבחירה (סוגי משאבים אחרים מוצגים כשדות להזנת טקסט חופשי).

פרמטרים של סודות

אופן הטיפול בערכים של סודות שסופקו על ידי המשתמש (כמו מפתחות API) מתבצע באופן שונה:

  • הערכים של הסודות מאוחסנים באמצעות Cloud Secret Manager. רק לקוחות מורשים (למשל, מופע מותקן של תוסף) יש גישה לערכים האלה.
  • כשהמשתמשים יתבקשו להזין את הערכים האלה, הקלט שלהם לא יוצג.
params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What is the secret value?
    type: secret
שדות של פרמטרים סודיים
type
String (מחרוזת)

secret

מציינת שהפרמטר הוא ערך סודי

משאבים של Cloud Functions

בשדות האלה מוצהר על הפונקציות של Cloud Functions שכלולות בתוסף. מקור המידע התחביר של ההצהרה נראה קצת שונה בין מדור ראשון לבין דור שני. יכולות להתקיים בו-זמנית בתוסף.

Cloud Functions מדור ראשון

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
מחרוזת
(חובה)
למשאב של פונקציה מדור ראשון: firebaseextensions.v1beta.function
description
מחרוזת
(חובה)

תיאור קצר של המשימה שהפונקציה מבצעת עבור לתוסף.

properties
(חובה)

נכסי 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
(מומלץ)

סביבת זמן ריצה לפונקציה.

httpsTrigger
או
eventTrigger
או
scheduleTrigger
או
taskQueueTrigger
(נדרש אחד מסוגי הטריגרים של הפונקציות האלה)
צפייה בקטע כתיבה Cloud Functions עבור תוסף לקבלת מידע ספציפי על כל סוג של טריגר.

Cloud Functions דור שני

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
מחרוזת
(חובה)
למשאב פונקציה מדור שני: firebaseextensions.v1beta.v2function
description
מחרוזת
(חובה)

תיאור קצר של המשימה שהפונקציה מבצעת עבור לתוסף.

properties
(חובה)

מאפייני Cloud Functions מדור שני. המאפיינים החשובים ביותר אפשר למצוא את הרשימה המלאה ענן מסמך עזר בנושא פונקציות.

נכסים
location
(אופציונלי)

המיקום שבו רוצים לפרוס את הפונקציה. ברירת המחדל היא us-central1

sourceDirectory
(אופציונלי)

הספרייה שמכילה את package.json בסיס. הקובץ של קוד המקור של הפונקציות צריך להיות בתיקייה הזו. ברירת המחדל היא functions.

הערה: השדה main ב package.json מציין את הקובץ עבור את קוד המקור של הפונקציות (כמו index.js).

יש גם שלושה שדות של סוג אובייקט עם מאפיינים משלהם:

מאפייני buildConfig
buildConfig.runtime
(מומלץ)

סביבת זמן ריצה לפונקציה.

buildConfig.entryPoint
(אופציונלי)
השם של הפונקציה שמיוצאת בקוד המקור של הפונקציות שהתוסף צריך לחפש. ברירת המחדל היא הערך של name, למעלה.
מאפייני serviceConfig
serviceConfig.timeoutSeconds
(אופציונלי)

משך ההפעלה המקסימלי של הפונקציה.

  • ברירת מחדל: 60
  • הערך המקסימלי: 540
serviceConfig.availableMemory
(אופציונלי)
כמות הזיכרון הזמין לפונקציה. ברירת המחדל היא 256M היחידות הנתמכות הן k,‏ M,‏ G,‏ Mi ו-Gi. אם לא תציינו יחידה, הערך יפורש כבייטים.
מאפייני eventTrigger
eventTrigger.eventType
(חובה)
סוג האירוע שרוצים להאזין לו. במאמר כתיבת פונקציות של Cloud Functions לתוסף מפורטים סוגי האירועים שזמינים לכל מוצר.
eventTrigger.eventFilters
(אופציונלי)
מסננים שמגבילים עוד יותר את האירועים שאפשר להאזין להם. לדוגמה, אפשר להאזין רק לאירועים שתואמים לדפוס משאב ספציפי. צפייה כתיבה בענן פונקציות של תוסף לקבלת מידע על סינון של כל תוסף סוג האירוע.
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 במאמר הוספת וו hooks של משתמשים לתוסף.

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
מחרוזת
(חובה)
תיאור האירוע.