Manifest של תוספים הוא רשימה של מכונות של תוספים וההגדרות שלהן. בעזרת המניפסט אפשר:
- שיתוף תצורת התוספים שלך עם אחרים
- להעתיק את תצורת התוספים בין פרויקטים שונים (כגון פרויקט ה-Staging לפרויקט הייצור שלכם)
- איך פורסים את כל התוספים בבת אחת
- אפשר לבדוק איך התוספים פועלים עם האפליקציה באמצעות 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
- ייצוא של הגדרות תוספים בפרויקט
- עריכה ידנית של קובצי המניפסט
שתי השיטות הראשונות מוסברות בהמשך.
ניהול המניפסט של התוספים באמצעות ה-CLI של Firebase
אפשר להריץ את רוב הפקודות ext:
של ה-CLI של Firebase באמצעות האפשרות --local
כדי לעדכן את מניפסט התוספים בלי לשנות בפועל את קובץ ה-CSV של הפרויקט.
את ההגדרה הנוכחית.
לדוגמה:
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
ייצוא הגדרות של תוספים בפרויקט
כדי לשמור במניפסט את התצורה הנוכחית של התוספים של פרויקט, יש לבצע את הפעולות הבאות: הבאים:
- אם עוד לא עשיתם זאת, מגדירים את ה-CLI של Firebase
- מהנחיה במעטפת, משנים לספריית הפרויקט. (הפרויקט שלך
הספרייה מכילה את הקובץ
firebase.json
). - מריצים את הפקודה
ext:export
:firebase ext:export
הפקודה ext:export
תוסיף קטע extensions
אל firebase.json
חדש. בנוסף, הפקודה ext:export
יוצרת את הספרייה extensions
שמכיל קובץ .env
עבור כל מופע של תוסף שהתקנת. הקבצים האלה מכילים את פרמטרים התצורה של כל מכונה.
בדיקת הגדרה של תוספים באמצעות Firebase Local Emulator Suite
אחרי שמוסיפים כמה מופעים של תוספים למניפסט של התוספים, אפשר אפשר לנסות אותם בעזרת Local Emulator Suite.
מפעילים את Local Emulator Suite:
- כדי להפעיל את חבילת האמולטור באופן אינטראקטיבי, מריצים את:
firebase emulators:start
- כדי להריץ את חבילת האמולטור ולהריץ סקריפט בדיקה, מריצים את:
firebase emulators:exec my-test.sh
- כדי להפעיל את חבילת האמולטור באופן אינטראקטיבי, מריצים את:
עכשיו, אם יש לכם מופעים של תוספים במניפסט,
האפליקציה Local Emulator Suite תוריד את קוד המקור של התוספים האלה אל
~/.cache/firebase/extensions
. אחרי ההורדה,
Local Emulator Suite יתחיל ותהיה לך אפשרות להפעיל כל אחד מהסוגים
'תוספים' פונקציות שמופעלות ברקע וחיבור האפליקציה לאמולטור
כדי לבדוק את השילוב שלהם עם האפליקציה.
פריסה של הגדרות תוספים בפרויקט
אחרי שמוסיפים כמה מופעים של תוספים למניפסט של התוסף, אפשר לפרוס אותו בפרויקט באמצעות ה-CLI של Firebase. כשפורסים עם את המניפסט של התוספים, אפשר להתקין, לעדכן ולהגדיר את כל התוספים את המכונות במניפסט של הפרויקט בבת אחת.
כדי לפרוס מניפסט של תוספים:
- בהודעת הפקודה של המעטפת, עוברים לספרייה שמכילה את ההגדרות השמורות של התוספים. (זו הספרייה שמכילה
firebase.json
אם הרצת אתext:export
עכשיו, כבר הצטרפת בצורה הנכונה ). - מריצים את הפקודה
deploy
. אם רוצים לפרוס את התוספים לפרויקט אחר מלבד הפרויקט הנוכחי, צריך לציין גם את--project=
:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
הפקודה deploy
תאמת כל הגדרה של מכונה. שואלים אם רוצים
כדי למחוק מופעים של תוספים מפרויקט היעד שלא
שמפורטות ב-firebase.json
, ואז פורסים את כל המכונות של התוספים.
הגדרות תוספים ספציפיות לפרויקט
אפשר להשתמש בהגדרות של תוספים שמורים כדי לפרוס במספר הגדרות שונות
לפרויקטים: לדוגמה, פרויקט Staging ופרויקט ייצור. בזמן ביצוע
לכן יכול להיות שחלק מערכי הפרמטרים יצטרכו להיות שונים בכל פרויקט.
כשמשתמשים בקובצי .env
שהם ספציפיים לפרויקט, אפשר:
- צריך להזין ערכי פרמטרים שונים בין פרויקטים ב-
extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
- יש להזין ערכי פרמטרים משותפים ב-
extensions/EXTENSION_INSTANCE_ID.env
.
לפעמים כדאי להשתמש בערך פרמטר שונה כשאתם מעתיקים את התוספים: לדוגמה, כדאי לספק מפתח API לבדיקה במקום מפתח API בסביבת הייצור. צריך להזין את הפרמטרים הבאים בקובץ .local
:
- מוסיפים את הפרמטרים שאינם סודיים שבהם רוצים להשתמש במהלך ההדמיה ל-
extensions/EXTENSION_INSTANCE_ID.env.local
- שמירת ערכי הפרמטרים הסודיים ב-
extensions/EXTENSION_INSTANCE_ID.secret.local