לפרוס מטרות

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

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

  • תצורת האירוח עבור כל אחד מאתרי האירוח שלך
  • נכסים סטטיים מספריית הפרויקט שלך עבור כל אחד מאתרי האירוח שלך
  • כללי אבטחה משותפים למספר מופעים של מסד נתונים בזמן אמת או דליים מרובים של Cloud Storage

כדי להגדיר יעד פריסה:

  1. החל TARGET_NAME על המשאב הממוקד של Firebase או על קבוצת משאבי Firebase.
  2. בקובץ firebase.json שלך, עיין ב- TARGET_NAME המשויך כאשר אתה מגדיר את ההגדרות עבור כל משאב או קבוצת משאבים.

כאשר אתה מפעיל פקודות Firebase CLI (כמו firebase deploy ), ה-CLI של Firebase משלב כל TARGET_NAME עם משאבי Firebase המשויכים לו. לאחר מכן, ה-CLI מעביר לפרויקט Firebase שלך ​​את ההגדרות עבור כל משאב.

הגדר יעדי פריסה עבור משאבי Firebase שלך

באמצעות Firebase CLI, החל TARGET_NAME (מזהה שם קצר שאתה מגדיר בעצמך) על משאב Firebase או על קבוצת משאבי Firebase. Firebase תומך בפריסת יעדים עבור:

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

הגדר יעדי פריסה עבור אירוח

כדי ליצור יעד פריסה ולהחיל TARGET_NAME על אתר אירוח, הפעל את פקודת ה-CLI הבאה:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

איפה הפרמטרים:

  • TYPE - סוג המשאב הרלוונטי של Firebase

    • עבור אתרי אירוח של Firebase, השתמש hosting .
  • TARGET_NAME - שם ייחודי לאתר האירוח שאליו אתה פורס

  • RESOURCE_IDENTIFIER - ה- SITE_ID של אתר האירוח כפי שמופיע בפרויקט Firebase שלך

לדוגמה, אם יצרת שני אתרים ( myapp-blog ו- myapp-app ) בפרויקט Firebase שלך, תוכל להחיל TARGET_NAME ייחודי ( blog app , בהתאמה) על כל אתר על ידי הפעלת הפקודות הבאות:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

הגדר יעדי פריסה עבור אחסון בענן או מסד נתונים בזמן אמת

כדי ליצור יעד פריסה ולהחיל TARGET_NAME על קבוצה של משאבי אחסון בענן או מסד נתונים בזמן אמת, הפעל את פקודת ה-CLI הבאה:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

איפה הפרמטרים:

  • TYPE - סוג המשאב הרלוונטי של Firebase

    • עבור דליים של Cloud Storage, השתמש storage .
    • עבור מופעים של מסד נתונים בזמן אמת, השתמש database .
  • TARGET_NAME - שם ייחודי למשאב או לקבוצת המשאבים החולקים כללי אבטחה

  • RESOURCE_IDENTIFIER - המזהים של המשאבים כפי שמופיעים בפרויקט Firebase שלך ​​(כמו שמות דלי אחסון או מזהי מופעי מסד נתונים) שכולם חולקים את אותם כללי אבטחה

לדוגמה, תוכל להחיל את ה- TARGET_NAME של main על קבוצה של שלושה דליים אזוריים של Cloud Storage (שכולם חולקים את אותם כללי אבטחה) על ידי הפעלת הפקודה הבאה:

firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

שים לב ש- myproject.appspot.com הוא המזהה של דלי ברירת המחדל, בעוד myproject-eu ו- myproject-ja הם שני דליים נוספים שנוצרו בפרויקט Firebase.

הגדר את קובץ firebase.json שלך לשימוש ביעדי פריסה

לאחר שתגדיר יעדי פריסה עבור משאבי Firebase שלך, עיין בכל TARGET_NAME שהוחל בקובץ התצורה firebase.json :

  1. צור מערך של אובייקטי תצורה עבור כל משאב Firebase TYPE ( hosting , storage או database ).
  2. במערכים, ציין את target (באמצעות ה- TARGET_NAME ) והגדר את ההגדרות שלך עבור המשאב או קבוצת המשאבים המשויכים Firebase.

בהמשך לדוגמאות מלמעלה, כאשר לפרויקט Firebase שלך ​​יש שני אתרי אירוח ושלושה דליים של Cloud Storage (שחולקים את אותם כללי אבטחה), קובץ firebase.json שלך ייראה כך:

{
  "hosting": [ {
      "target": "blog",  // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog"
      "public": "blog/dist",  // contents of this folder are deployed to the site "myapp-blog"

      // ...
    },
    {
      "target": "app",  // "app" is the applied TARGET_NAME for the Hosting site "myapp-app"
      "public": "app/dist",  // contents of this folder are deployed to the site "myapp-app"

      // ...

      "rewrites": [...]  // You can define specific Hosting configurations for each site
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

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

נהל יעדי פריסה

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

פקודה תיאור
firebase target מפרט את יעדי הפריסה עבור ספריית הפרויקט הנוכחית שלך
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
מסיר משאב מהיעד שאליו הוא הוקצה
firebase target:clear \
TYPE TARGET_NAME
מסיר את כל המשאבים או אתר האירוח מהיעד שצוין

הפקודות target:remove ו- target:clear מעדכנות אוטומטית את הגדרות היעד של הפריסה בקובץ .firebaserc בספריית הפרויקט שלך.

בדוק באופן מקומי לפני הפריסה

הפעל כל אחת מהפקודות הבאות מהשורש של ספריית הפרויקט שלך.

פקודה תיאור
firebase emulators:start מחקה את כל המשאבים המוגדרים בספריית הפרויקט שלך
firebase emulators:start \
--only hosting: TARGET_NAME
מחקה רק את תוכן האירוח והתצורה של אתר האירוח שצוין
firebase emulators:start \
--only storage: TARGET_NAME
מחקה רק את קובץ הכללים עבור יעד ה-Cloud Storage שצוין
firebase emulators:start \
--only database: TARGET_NAME
מחקה רק את קובץ הכללים עבור יעד מסד הנתונים בזמן אמת שצוין

למידע נוסף על הגדרה ושימוש בחבילת האמולטור המקומית של Firebase .

לפרוס משאבים ספציפיים של Firebase

הפעל כל אחת מהפקודות הבאות מהשורש של ספריית הפרויקט שלך.

פקודה תיאור
firebase deploy יוצר גרסה של כל המשאבים הניתנים לפריסה בספריית הפרויקט שלך
firebase deploy \
--only hosting: TARGET_NAME
פורס רק את תוכן האירוח והתצורה של אתר האירוח שצוין לערוץ החי של האתר
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
פורס רק את תוכן האירוח והתצורה של אתר האירוח שצוין לערוץ תצוגה מקדימה של האתר
firebase deploy \
--only storage: TARGET_NAME
פורס רק את קובץ הכללים עבור יעד האחסון בענן שצוין
firebase deploy \
--only database: TARGET_NAME
פורס רק את קובץ הכללים עבור יעד מסד הנתונים בזמן אמת שצוין