נהל את תצורות הפרויקט באמצעות מניפסט ההרחבות

מניפסט של הרחבות הוא רשימה של מופעי הרחבות ותצורותיהם. עם המניפסט, אתה יכול:

  • שתף את תצורת התוספים שלך עם אחרים
  • העתק את תצורת ההרחבות שלך בין פרויקטים שונים (כגון מפרויקט ההיערכות שלך לפרויקט ההפקה שלך)
  • פרוס את כל ההרחבות שלך בבת אחת
  • בדוק כיצד התוספים שלך עובדים עם האפליקציה שלך באמצעות Firebase Local Emulator Suite
  • הגדר את תצורת התוספים שלך לבקרת מקור
  • כלול הרחבות בצנרת ה-CI/CD שלך

מניפסט הרחבות כולל שני חלקים:

  • קטע extensions של firebase.json שלך, שהוא מפה של מזהה מופע להפניה לגרסת הרחבה. לדוגמה:

    {
     "extensions": {
       "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
       "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
     }
    }
    
  • קובצי .env המכילים את התצורה עבור כל אחד ממופעי ההרחבה שלך, בספריית המשנה extensions/ של ספריית פרויקט Firebase שלך. לדוגמה, למופע של storage-resize-images עשוי להיות קובץ .env כמו הבא:

    IMAGE_TYPE=jpeg
    LOCATION=us-central1
    IMG_BUCKET=${param:PROJECT_ID}.appspot.com
    IMG_SIZES=100x100
    DELETE_ORIGINAL_FILE=false

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

ישנן שלוש דרכים לבנות מניפסט הרחבות:

  • נהל את מניפסט ההרחבות שלך באמצעות Firebase CLI
  • ייצא את תצורת ההרחבות של פרויקט
  • ערוך את קבצי המניפסט באופן ידני

שתי השיטות הראשונות מוסברות להלן.

נהל את מניפסט ההרחבות שלך באמצעות Firebase CLI

אתה יכול להריץ את רוב הפקודות ext: של Firebase CLI עם האפשרות --local לעדכון מניפסט ההרחבות מבלי לשנות בפועל את התצורה הנוכחית של הפרויקט.

לדוגמה:

firebase ext:install --local firebase/firestore-bigquery-export

הפעלת הפקודה לעיל תנחה אותך להגדיר את הגרסה העדכנית ביותר של הרחבת firebase/firestore-bigquery-export ולשמור את התצורה במניפסט, אך היא לא תפרוס את התצורה לפרויקט שלך.

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

# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local

# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local

# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local 

# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local

ייצא את תצורת ההרחבות של פרויקט

כדי לשמור את תצורת ההרחבות הנוכחית של פרויקט במניפסט, בצע את הפעולות הבאות:

  1. אם עדיין לא עשית זאת, הגדר את Firebase CLI
  2. מהודעת מעטפת, שנה לספריית הפרויקט. (ספריית הפרויקט שלך מכילה את הקובץ firebase.json ).
  3. הפעל את הפקודה ext:export :
    firebase ext:export

הפקודה ext:export תוסיף קטע extensions לקובץ firebase.json . בנוסף, הפקודה ext:export יוצרת ספריית extensions המכילה קובץ .env עבור כל מופע סיומת שהתקנת. קבצים אלה מכילים את פרמטרי התצורה עבור כל מופע.

בדוק תצורת הרחבות עם Firebase Local Emulator Suite

לאחר שהוספת כמה מופעי הרחבות למניפסט התוספים שלך, תוכל לבדוק אותם באמצעות ה- Local Emulator Suite.

  1. התקן והגדר את חבילת האמולטור המקומית .

  2. התחל את חבילת האמולטור המקומית :

    • כדי להפעיל את Emulator Suite באופן אינטראקטיבי, הפעל: firebase emulators:start
    • כדי להפעיל את Emulator Suite ולהפעיל סקריפט בדיקה, הרץ: firebase emulators:exec my-test.sh

כעת, אם יש לך מופעי הרחבות הרשומים במניפסט שלך, ה- Local Emulator Suite תוריד את קוד המקור של ההרחבות האלה ל- ~/.cache/firebase/extensions . לאחר הורדתם, חבילת האמולטור המקומית תתחיל ותוכל להפעיל כל אחת מהפונקציות המופעלות ברקע של התוספים ולחבר את האפליקציה שלך לחבילת האמולטור כדי לבדוק את השילוב שלהן עם האפליקציה שלך.

פרוס תצורת הרחבות לפרויקט

לאחר שהוספת כמה מופעי הרחבה למניפסט התוסף שלך, תוכל לפרוס אותו לפרויקט באמצעות Firebase CLI. כאשר אתה פורס עם מניפסט של הרחבות, אתה מתקין, מעדכן ומגדיר את כל מופעי ההרחבה במניפסט לפרויקט בבת אחת.

כדי לפרוס מניפסט תוספים:

  1. מהודעת מעטפת, שנה לספרייה המכילה את תצורת ההרחבות השמורה. (זו הספרייה המכילה firebase.json . אם רק הרצתם ext:export , אתם כבר בספרייה הנכונה.)
  2. הפעל את פקודת deploy . אם ברצונך לפרוס את ההרחבות לפרויקט שאינו הנוכחי, ציין גם --project= :
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

הפקודה deploy תאמת כל תצורת מופע, תשאל אם ברצונך למחוק מופעי הרחבה כלשהם מפרויקט היעד שלך שאינם רשומים ב- firebase.json , ולאחר מכן תפרוס את כל מופעי ההרחבה שלך.

תצורות הרחבה ספציפיות לפרויקט

ניתן להשתמש בתצורות של הרחבות שמורות לפריסה למספר פרויקטים שונים: לדוגמה, פרויקט היערכות ופרויקט ייצור. כאשר עושים זאת, ייתכן שערכי פרמטר מסוימים יהיו שונים עבור כל פרויקט. קובצי .env ספציפיים לפרויקט מאפשרים זאת:

  • שים ערכי פרמטרים שונים בין פרויקטים extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID
  • שים ערכי פרמטרים משותפים extensions/ EXTENSION_INSTANCE_ID .env .

לפעמים, ייתכן שתרצה להשתמש בערך פרמטר אחר בעת חיקוי התוספים שלך: לדוגמה, ייתכן שתרצה לספק מפתח API לבדיקה במקום מפתח ייצור. שים את הפרמטרים האלה בקובץ .local :

  • שים פרמטרים לא סודיים שבהם ברצונך להשתמש במהלך אמולציה extensions/ EXTENSION_INSTANCE_ID .env.local
  • שים ערכי פרמטר סודיים ב- extensions/ EXTENSION_INSTANCE_ID .secret.local