קובץ המפרט של התוסף (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. הערך הנוכחי: |
||||||||
licenseמחרוזת (אופציונלי) |
רישיון לתוסף. התוסף צריך להיות מורשה באמצעות |
||||||||
billingRequiredboolean (אופציונלי) |
האם השירותים שבהם נעשה שימוש בתוסף דורשים חשבון לחיוב ב-Firebase ברמה בתשלום. הערך תמיד יהיה |
||||||||
displayNameמחרוזת (אופציונלי) |
שם תצוגה ידידותי לתוסף (3-5 מילים). מגבלה של 40 תווים. |
||||||||
descriptionמחרוזת (אופציונלי) |
תיאור קצר של המשימה שהתוסף מבצע (משפט אחד בערך). | ||||||||
iconמחרוזת (אופציונלי) |
קובץ לשימוש כסמל התוסף ב- הקובץ צריך להיות PNG מרובע בגודל שבין 512x512 ל-1,024x1,024 פיקסלים.
צריך לשים את הקובץ באותה ספרייה שבה נמצא כשמעצבים סמל לתוסף, חשוב להקפיד על ההנחיות הבאות:
|
||||||||
tagsרשימה של מחרוזות (אופציונלי) |
תגים שיעזרו למשתמשים לגלות את התוסף שלכם.
התגים הבאים ממופים לקטגוריות במרכז התוספים:
marketing,
messaging,
payments,
search,
shipping,
social,
utilities,
ai
|
||||||||
sourceUrlמחרוזת (אופציונלי) |
כתובת URL ציבורית שאפשר לגשת אליה לספריית התוספים. | ||||||||
releaseNotesUrlמחרוזת (אופציונלי) |
כתובת URL ציבורית שאפשר לגשת אליה להערות על הגרסה של התוסף. | ||||||||
authorאובייקט מחבר אחד (אופציונלי) |
המחבר הראשי ואיש הקשר בנוגע לתוסף. 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/
|
||||||||
ממשקי 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מחרוזת (חובה) |
שם ה-API של Google הערך צריך להיות זהה לערך בשדה שם השירות שמופיע בדף הסקירה הכללית של כל API (דוגמה) בספריית ה-API של Google Cloud. |
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מחרוזת (אופציונלי) |
תיאור מפורט של הפרמטר. הערך מוצג למשתמש כשמוצגת לו בקשה להזין את הערך של הפרמטר. תמיכה ב-Markdown. |
exampleמחרוזת (אופציונלי) |
ערך לדוגמה של הפרמטר. |
defaultמחרוזת (אופציונלי) |
ערך ברירת המחדל של הפרמטר אם המשתמש משאיר את הערך של הפרמטר ריק. |
validationRegexמחרוזת (אופציונלי) |
ביטוי רגולרי לאימות הערך שהמשתמש הגדיר לפרמטר. תחביר של Google RE2. |
validationErrorMessageמחרוזת (אופציונלי) |
הודעת השגיאה שתוצג אם האימות באמצעות ביטוי רגולרי ייכשל. |
requiredboolean (אופציונלי) |
ההגדרה הזו קובעת אם המשתמש יכול לשלוח מחרוזת ריקה כשהוא מתבקש להזין את הערך של הפרמטר. ברירת המחדל היא true.
|
immutableboolean (אופציונלי) |
ההגדרה קובעת אם המשתמש יכול לשנות את ערך הפרמטר אחרי ההתקנה (למשל, אם הוא מגדיר מחדש את התוסף). ברירת המחדל היא
הערה: אם הגדרתם פרמטר 'מיקום' לפונקציות של התוסף שהטמעתם, צריך להגדיר את השדה הזה לערך |
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
| שדות פרמטרים של שאלות אמריקאיות | |||||||
|---|---|---|---|---|---|---|---|
typestring |
מציין שהפרמטר יכול להיות ערך אחד ( |
||||||
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
| שדות של פרמטרים של משאבים | |
|---|---|
typestring |
מציין שהפרמטר מייצג משאב בפרויקט |
resourceTypeמחרוזת (חובה) |
סוג המשאב שיוצג למשתמש לבחירה. הערכים האפשריים:
עם זאת, רק לקטגוריות של Cloud Storage יש כרגע ממשק משתמש לבחירה (סוגים אחרים של משאבים מוצגים כשדות קלט של טקסט חופשי). |
פרמטרים סודיים
ערכים סודיים שהמשתמשים מספקים (כמו מפתחות API) מטופלים באופן שונה:
- ערכי הסודות מאוחסנים באמצעות Cloud Secret Manager. רק לקוחות מורשים (כמו מופע מותקן של תוסף) יכולים לגשת לערכים האלה.
- כשמוצגת למשתמשים בקשה להזין את הערכים האלה, הקלט שלהם לא מוצג.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
| שדות של פרמטרים סודיים | |
|---|---|
typestring |
מציין שהפרמטר הוא ערך סודי |
משאבים של 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מחרוזת (חובה) |
שם ידידותי למשתמש של הפונקציה המיוצאת. אם לא מציינים את מאפיין השם הסופי של הפונקציה שנפרסה יהיה בפורמט הבא:
|
||||||||||||||||
typeמחרוזת (חובה) |
למשאב פונקציה מדור ראשון:
firebaseextensions.v1beta.function
|
||||||||||||||||
descriptionמחרוזת (חובה) |
תיאור קצר של המשימה שהפונקציה מבצעת עבור התוסף. |
||||||||||||||||
properties(חובה) |
מאפיינים של Cloud Functions מדור ראשון. בהמשך מפורטות התכונות הכי חשובות, אבל אפשר למצוא את הרשימה המלאה בהפניה ל-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מחרוזת (חובה) |
שם ידידותי למשתמש של הפונקציה המיוצאת. אם לא מציינים את מאפיין השם הסופי של הפונקציה שנפרסה יהיה בפורמט הבא:
|
||||||||||||||||||||||||||||
typeמחרוזת (חובה) |
למשאב פונקציה מדור שני:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
descriptionמחרוזת (חובה) |
תיאור קצר של המשימה שהפונקציה מבצעת עבור התוסף. |
||||||||||||||||||||||||||||
properties(חובה) |
מאפיינים של Cloud Functions מדור שני. בהמשך מפורטות התכונות הכי חשובות, אבל אפשר למצוא את הרשימה המלאה בהפניה ל-Cloud Functions.
יש גם שלושה שדות מסוג אובייקט עם מאפיינים משלהם:
|
||||||||||||||||||||||||||||
אירועים במחזור החיים
אירועים של מחזור חיים מאפשרים לכם לציין פונקציות שיפעלו כשמשתמש מתקין, מעדכן או מגדיר מופע של התוסף. אפשר לעיין במאמר בנושא טיפול באירועים במחזור החיים של התוסף.
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מחרוזת (חובה) |
תיאור האירוע. |