פרמטרים הם המנגנון שדרכו משתמש מתאים אישית כל מופע מותקן של הרחבה. פרמטרים הם כמו משתני הסביבה עבור הרחבה. הערכים של פרמטרים יכולים להיות מאוכלסים אוטומטית (מסופק על ידי Firebase לאחר ההתקנה) או מוגדרים על ידי המשתמש (הצוין על ידי המשתמש במהלך ההתקנה).
פרמטרים אלו זמינים עבורך להתייחסות בקוד המקור של הפונקציות של התוסף שלך, בקובץ extension.yaml
ובקובץ POSTINSTALL.md
שלך. להלן התחביר כיצד להתייחס לפרמטר בשם PARAMETER_NAME
:
בתוך קוד המקור של הפונקציות שלך, השתמש במודול
params
(לדוגמה,params.defineInt(" PARAMETER_NAME ")
) אוprocess.env. PARAMETER_NAME
.בתוך
extension.yaml
ו-POSTINSTALL.md
, השתמש ב${param: PARAMETER_NAME }
.לאחר ההתקנה, מסוף Firebase מציג את התוכן של הקובץ
POSTINSTALL.md
וממלא את כל הפניות לפרמטרים עם הערכים בפועל עבור המופע המותקן.
פרמטרים מאוכלסים אוטומטית
לכל מופע מותקן של תוסף יש גישה אוטומטית למספר פרמטרים המאוכלסים אוטומטית המוגדרים כברירת מחדל שסופקו על ידי Firebase (עיין בטבלה למטה). ערכי הפרמטרים האלה הם ערכי ברירת המחדל של פרויקט Firebase (כמו דלי האחסון המוגדר כברירת מחדל) או שהם ספציפיים לתוסף (כמו מזהה המופע של התוסף).
כל ערכי הפרמטרים המאוכלסים אוטומטית אינם ניתנים לשינוי. הם נקבעים בזמן יצירת הפרויקט או התקנת ההרחבה.
למרות ש-Firebase מאכלסת אוטומטית את ערכי הפרמטרים האלה עבור התוסף, Firebase לא מספקת אוטומטית את המוצרים המשויכים למשתמש במהלך ההתקנה . המשתמש שמתקין את התוסף חייב להפעיל את המוצר/ים המשויכים והישימים בפרויקט שלו לפני ההתקנה. לדוגמה, אם התוסף שלך כולל את Cloud Firestore, המשתמש חייב להגדיר את Cloud Firestore בפרויקט שלו. אנו ממליצים ליידע את המשתמשים שלך על דרישות אלה בקובץ PREINSTALL.md
.
הפניה לפרמטר מאוכלס אוטומטית | תיאור | ערך פרמטר (מסופק על ידי Firebase) |
---|---|---|
פרמטרים עם ערכי ברירת מחדל מפרויקט Firebase | ||
PROJECT_ID | מזהה ייחודי לפרויקט Firebase שבו התוסף מותקן | פורמט כללי: ערך לדוגמה: |
DATABASE_URL | ברירת המחדל של כתובת ה-URL של מופע מסד הנתונים בזמן אמת של פרויקט Firebase | פורמט כללי: ערך לדוגמה: |
DATABASE_INSTANCE | שם מופע ברירת המחדל של Realtime Database של פרוייקט Firebase בדרך כלל, ערך זה זהה למזהה הפרויקט, או מסתיים ב- | פורמט כללי: ערך לדוגמה: |
STORAGE_BUCKET | שם דלי ברירת המחדל של פרויקט Firebase של Cloud Storage | פורמט כללי: ערך לדוגמה: |
פרמטר עם ערך ברירת מחדל מהתקנת ההרחבה | ||
EXT_INSTANCE_ID | מזהה ייחודי עבור מופע התוסף המותקן ערך זה נוצר משדה | פורמט כללי עבור מופע מותקן ראשון (מוקצה אוטומטית על ידי Firebase; לא ניתן לשנות את המשתמש במהלך ההתקנה): ערך לדוגמה: פורמט כללי עבור מופע שני ומעלה (מוקצה אוטומטית על ידי Firebase; ניתן לשנות על ידי המשתמש במהלך ההתקנה): ערך לדוגמה: |
פרמטרים בהגדרת משתמש
כדי לאפשר למשתמש להתאים אישית כל מופע מותקן של הרחבה, אתה יכול לבקש מהמשתמש לציין ערכי פרמטרים במהלך ההתקנה. כדי לבקש ערכים אלה, אתה מגדיר את ההנחיות בקטע params
של קובץ extension.yaml
שלך.
להלן סעיף params
לדוגמה, ואחריו טבלה המתארת את כל שדות הפרמטרים הזמינים.
# extension.yaml
...
# Parameters (environment variables) for which the user specifies values during installation
params:
- param: DB_PATH
label: Realtime Database path
description: >-
What is the Realtime Database path where you will write new text
for sentiment analysis?
type: string
validationRegex: ^\S+$
validationErrorMessage: Realtime Database path cannot contain spaces.
example: path/to/posts
required: true
- param: TEXT_KEY
label: Key for text
description: What is the name of the key that will contain text to be analyzed?
type: string
default: textToAnalyze
required: true
במקטע params
של קובץ extension.yaml
שלך, השתמש בשדות הבאים כדי להגדיר פרמטר מוגדר על ידי משתמש:
שדה | סוּג | תיאור | ||||
---|---|---|---|---|---|---|
param (נדרש) | חוּט | שם הפרמטר | ||||
label (נדרש) | חוּט | תיאור קצר לפרמטר מוצג למשתמש כאשר הוא מתבקש להזין את ערך הפרמטר | ||||
description (אופציונאלי) | חוּט | תיאור מפורט לפרמטר מוצג למשתמש כאשר הוא מתבקש להזין את ערך הפרמטר תומך ב-markdown | ||||
type (אופציונאלי) | חוּט | מנגנון קלט לאופן שבו המשתמש מגדיר את ערך הפרמטר (לדוגמה, הזן טקסט ישירות או בחר מהרשימה הנפתחת) ערכים חוקיים כוללים את הדברים הבאים:
אם שדה זה מושמט, הפרמטר מוגדר כברירת מחדל | ||||
options (נדרש אם type הפרמטר הוא select או multiSelect ) | רשימה | רשימת ערכים שמהם המשתמש יכול לבחור כלול שדות
שדה | ||||
resourceType (נדרש אם type הפרמטר הוא selectResource ) | חוּט | סוג המשאב של Firebase שיבקש מהמשתמש לבחור. נכון לעכשיו, רק דליים של Cloud Storage תומכים בבוררי משאבים:
תתעלם מערכי | ||||
example (אופציונאלי) | חוּט | ערך לדוגמה עבור הפרמטר | ||||
validationRegex (אופציונאלי) (מתאים רק כאשר type הפרמטר הוא string ) | חוּט | מחרוזת רגקס לאימות הערך המוגדר על ידי המשתמש של הפרמטר Regex מורכב באמצעות ספריית go: RE2 לפרטים על אימות, עיין באימות והודעות שגיאה למטה. | ||||
validationErrorMessage (אופציונאלי) | חוּט | הודעת שגיאה שתוצג אם לפרטים על הודעות שגיאה, עיין באימות והודעות שגיאה להלן. | ||||
default (אופציונאלי) | חוּט | ערך ברירת מחדל עבור הפרמטר אם המשתמש משאיר את ערך הפרמטר ריק אם רלוונטי, תוכל לציין ערך פרמטר מאוכלס אוטומטית עבור ערך | ||||
required (אופציונאלי) | בוליאני | מגדיר אם המשתמש יכול לשלוח מחרוזת ריקה כאשר הוא מתבקש להזין את ערך הפרמטר אם | ||||
immutable (אופציונאלי) | בוליאני | מגדיר אם המשתמש יכול לשנות את ערך הפרמטר לאחר ההתקנה (לדוגמה, אם הוא מגדיר מחדש את התוסף) אם הערה: אם אתה מגדיר פרמטר "מיקום" עבור הפונקציות הפרוסות של התוסף שלך , עליך לכלול את השדה |
אימות והודעות שגיאה עבור ערכים המוגדרים על ידי משתמש
כאשר אתה מגדיר פרמטר עם type
string
, עליך להגדיר אימות רגולרי מתאים באמצעות שדה validationRegex
של הפרמטר.
כמו כן, עבור הרחבות רבות, ערך פרמטר מבוקש נפוץ הוא נתיב מסד נתונים או דלי של Cloud Storage. שים לב שבמהלך התקנה, הגדרה מחדש או עדכון, שירות ההרחבות אינו מאמת את הדברים הבאים בזמן הזנת ערך הפרמטר:
- האם מסד הנתונים או Cloud Storage שצוין מוגדרים בתוך פרויקט Firebase של המשתמש
- האם נתיב מסד הנתונים שצוין קיים במסד הנתונים של המשתמש
עם זאת, כאשר התוסף למעשה פורס את המשאבים שלו, קונסולת Firebase או Firebase CLI יציגו הודעת שגיאה אם מסד הנתונים או דלי ה-Cloud Storage לא הוגדר עדיין בפרויקט.
אנו ממליצים בחום להודיע למשתמשים בקובץ ה- PREINSTALL
על הדרישות הללו, כך שכאשר הם מתקינים את התוסף שלך, הוא יותקן בהצלחה ויעבוד כצפוי.
פרמטרי מערכת
פרמטרי מערכת שולטים בתצורה הבסיסית של משאבי הרחבה. מכיוון שהם נועדו לשלוט על תצורת המשאבים, הם אינם נגישים כמשתני סביבה מתוך קוד הפונקציה שלך.
בדרך כלל אינך צריך להצהיר שום דבר עבור הפרמטרים הללו ב- extension.yaml
. הם מוגדרים אוטומטית עבור כל מופע של תוסף, ולמשתמשים יש הזדמנות להגדיר ערכים מותאמים אישית כשהם מתקינים את התוסף שלך.
עם זאת, אם לתוסף שלך יש דרישות משאבים מיוחדות, תוכל להגדיר ערכים ספציפיים ברמת משאב ב- extension.yaml
. הגדרות תצורה אלה לכל משאב יעקפו את הגדרות המופע של הרחבה של המשתמש. לדוגמה:
resources:
- name: high_memory_function
type: firebaseextensions.v1beta.function
description: >-
This function needs at least 1GB of memory!
properties:
httpsTrigger: {}
runtime: nodejs18
availableMemoryMb: 1024
- name: normal_function
type: firebaseextensions.v1beta.function
description: >-
This function has no special memory requirements. It will use the
default value, or the value of `firebaseextension.v1beta.function/memory`
properties:
httpsTrigger: {}
runtime: nodejs18
פרמטרי המערכת הזמינים הם:
שֵׁם | תווית (ידידותית לאדם) | שדה מקביל properties | תיאור |
---|---|---|---|
firebaseextensions.v1beta.function/location | מקום | location | לאיזה אזור יש לפרוס את פונקציות הענן? |
firebaseextensions.v1beta.function/memory | זיכרון פונקציה | memory | כמה מגה-בייט של זיכרון יש להקצות לכל פונקציה? |
firebaseextensions.v1beta.function/timeoutSeconds | פסק זמן של פונקציה | timeout | כמה שניות צריכות לפעול הפונקציות לפני תום הזמן? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | יציאת מחבר VPC | vpcConnectorEgressSettings | שולט על תעבורה יוצאת כאשר מחבר VPC מוגדר |
firebaseextensions.v1beta.function/vpcConnector | מחבר VPC | vpcConnector | מחבר את פונקציות הענן למחבר VPC שצוין. |
firebaseextensions.v1beta.function/minInstances | מינימום מופעי פונקציה | minInstances | המספר המינימלי של מופעים של פונקציה זו להפעלה בבת אחת |
firebaseextensions.v1beta.function/maxInstances | מקסימום מופעי פונקציה | maxInstances | המספר המרבי של מופעים של פונקציה זו להפעלה בבת אחת |
firebaseextensions.v1beta.function/ingressSettings | הגדרות כניסה | ingressSettings | שולט מהיכן התנועה הנכנסת מתקבלת |
firebaseextensions.v1beta.function/labels | תוויות | labels | תוויות להחלה על כל המשאבים בהרחבה |