ב-CLI של Firebase (GitHub) יש מגוון כלים לניהול פרויקטים ב-Firebase, לצפייה בהם ולפריסה שלהם.
לפני שמשתמשים ב-CLI של Firebase, צריך להגדיר פרויקט Firebase.
הגדרה או עדכון של ה-CLI
התקנת ה-CLI של Firebase
אפשר להתקין את ה-CLI של Firebase בשיטה שמתאימה למערכת ההפעלה, לרמת החוויה ו/או לתרחיש לדוגמה. לא משנה איך מתקינים את ה-CLI, יש לכם גישה לאותה פונקציונליות ולפקודה firebase
.
Windows
ניתן להתקין את ה-CLI של Firebase ל-Windows באחת מהאפשרויות הבאות:
אפשרות | תיאור | מומלץ עבור... |
---|---|---|
קובץ בינארי עצמאי | מורידים את הקובץ הבינארי העצמאי ל-CLI. אחר כך אפשר לגשת לקובץ ההפעלה כדי לפתוח מעטפת שבה אפשר להריץ את הפקודה firebase .
|
מפתחים חדשים מפתחים שלא משתמשים ב-Node.js או לא מכירים אותו |
npm | משתמשים ב-npm (מנהל החבילות Node Package) כדי להתקין את ה-CLI ולהפעיל את הפקודה firebase שזמינה בכל העולם.
|
מפתחים שמשתמשים ב-Node.js |
בינארי עצמאי
כדי להוריד ולהריץ את הקובץ הבינארי של ה-CLI של Firebase, מבצעים את השלבים הבאים:
הורידו את הקובץ הבינארי של Firebase CLI ל-Windows.
נכנסים לקובץ הבינארי כדי לפתוח מעטפת שבה אפשר להריץ את הפקודה
firebase
.המשיכו להתחבר ולבדוק את ה-CLI.
נשימות בדקה
כדי להשתמש ב-npm
(מנהל החבילות של הצמתים) כדי להתקין את ה-CLI של Firebase:
מתקינים את Node.js באמצעות nvm-windows (מנהל הגרסאות של הצומת). כשמתקינים את Node.js, כלי הפקודות
npm
מתקינה באופן אוטומטי.התקן את ה-CLI של Firebase דרך
npm
על ידי הרצת הפקודה הבאה:npm install -g firebase-tools
הפקודה הזו מפעילה את הפקודה
firebase
שזמינה באופן גלובלי.המשיכו להתחבר ולבדוק את ה-CLI.
macOS או Linux
תוכלו להתקין את ה-CLI של Firebase ל-macOS או ל-Linux באחת מהאפשרויות הבאות:
אפשרות | תיאור | מומלץ עבור... |
---|---|---|
סקריפט להתקנה אוטומטית | מריצים פקודה יחידה שמזהה באופן אוטומטי את מערכת ההפעלה, מורידים את גרסת ה-CLI האחרונה ולאחר מכן מפעילה את הפקודה firebase שזמינה בכל העולם.
|
מפתחים חדשים מפתחים שלא משתמשים ב-Node.js או מכירים את Node.js פריסות אוטומטיות בסביבת CI/CD |
קובץ בינארי עצמאי | מורידים את הקובץ הבינארי העצמאי ל-CLI. לאחר מכן תוכלו להגדיר ולהפעיל את הקובץ הבינארי בהתאם לתהליך העבודה שלכם. | תהליכי עבודה שניתן להתאים אישית באופן מלא באמצעות CLI |
npm | משתמשים ב-npm (מנהל החבילות Node Package) כדי להתקין את ה-CLI ולהפעיל את הפקודה firebase שזמינה בכל העולם.
|
מפתחים שמשתמשים ב-Node.js |
סקריפט התקנה אוטומטית
כך מתקינים את ה-CLI של Firebase באמצעות סקריפט ההתקנה האוטומטי:
מריצים את פקודת ה-cURL הבאה:
curl -sL https://firebase.tools | bash
הסקריפט הזה מזהה אוטומטית את מערכת ההפעלה שלכם, מוריד את הגרסה האחרונה של Firebase CLI ולאחר מכן מפעיל את הפקודה
firebase
שזמינה בכל העולם.המשיכו להתחבר ולבדוק את ה-CLI.
לדוגמאות נוספות ופרטים נוספים על סקריפט ההתקנה האוטומטי, עיינו בקוד המקור של הסקריפט בכתובת firebase.tools.
בינארי עצמאי
כך מורידים ומפעילים את הקובץ הבינארי של Firebase CLI שספציפי למערכת ההפעלה שלכם:
מורידים את הקובץ הבינארי של Firebase CLI למערכת ההפעלה: macOS | Linux
(אופציונלי) מגדירים את הפקודה
firebase
שזמינה גלובלית.- יוצרים את קובץ ההפעלה הבינארי על ידי הרצת
chmod +x ./firebase_tools
. - מוסיפים את הנתיב של הקובץ הבינארי ל-PATH.
- יוצרים את קובץ ההפעלה הבינארי על ידי הרצת
המשיכו להתחבר ולבדוק את ה-CLI.
נשימות בדקה
כדי להשתמש ב-npm
(מנהל החבילות של הצמתים) כדי להתקין את ה-CLI של Firebase, צריך לבצע את השלבים הבאים:
התקן את Node.js באמצעות nvm (מנהל הגרסאות של Node).
התקנת Node.js מתקינה באופן אוטומטי את כלי הפקודהnpm
.התקן את ה-CLI של Firebase דרך
npm
על ידי הרצת הפקודה הבאה:npm install -g firebase-tools
הפקודה הזו מפעילה את הפקודה
firebase
שזמינה באופן גלובלי.המשיכו להתחבר ולבדוק את ה-CLI.
מתחברים ובודקים את ה-CLI של Firebase
לאחר התקנת ה-CLI, חובה לבצע אימות. לאחר מכן תוכלו לאשר את האימות על ידי הצגת רשימת הפרויקטים ב-Firebase.
נכנסים ל-Firebase באמצעות חשבון Google על ידי הרצת הפקודה הבאה:
firebase login
הפקודה הזאת מחברת את המכונה המקומית שלכם ל-Firebase ומעניקה לכם גישה לפרויקטים שלכם ב-Firebase.
מומלץ לבדוק שה-CLI מותקן כמו שצריך ולגשת לחשבון על ידי הצגת רשימת הפרויקטים ב-Firebase. מריצים את הפקודה הבאה:
firebase projects:list
הרשימה שמוצגת צריכה להיות זהה לרשימת הפרויקטים של Firebase שמופיעים במסוף Firebase.
עדכון לגרסה האחרונה של ה-CLI
באופן כללי, רצוי להשתמש בגרסת ה-CLI העדכנית ביותר של Firebase.
העדכון של גרסת ה-CLI תלוי במערכת ההפעלה ובאופן שבו התקנתם אותו.
Windows
- קובץ בינארי עצמאי: מורידים את הגרסה החדשה, ואז מחליפים אותה במערכת
- npm: הרצה של
npm install -g firebase-tools
macOS
- סקריפט התקנה אוטומטית: מריצים את
curl -sL https://firebase.tools | upgrade=true bash
- קובץ בינארי עצמאי: מורידים את הגרסה החדשה, ואז מחליפים אותה במערכת
- npm: הרצה של
npm install -g firebase-tools
Linux
- סקריפט התקנה אוטומטית: מריצים את
curl -sL https://firebase.tools | upgrade=true bash
- קובץ בינארי עצמאי: מורידים את הגרסה החדשה, ואז מחליפים אותה במערכת
- npm: הרצה של
npm install -g firebase-tools
שימוש ב-CLI עם מערכות CI
כדי להשלים את האימות ב-CLI של Firebase נדרש דפדפן, אבל הוא תואם באופן מלא ל-CI ולסביבות ללא GUI.
במכונה עם דפדפן, מתקינים את Firebase CLI.
כדי להתחיל את תהליך הכניסה, מריצים את הפקודה הבאה:
firebase login:ci
נכנסים לכתובת ה-URL שצוינה ומתחברים באמצעות חשבון Google.
מדפיסים אסימון רענון חדש. סשן ה-CLI הנוכחי לא יושפע.
שומרים את אסימון הפלט בצורה מאובטחת אך נגישה במערכת ה-CI.
יש להשתמש באסימון הזה כשמריצים פקודות
firebase
. אפשר להשתמש באחת משתי האפשרויות הבאות:אפשרות 1: שמירת האסימון בתור משתנה הסביבה
FIREBASE_TOKEN
. המערכת תשתמש באסימון באופן אוטומטי.אפשרות 2: מריצים את כל פקודות
firebase
עם הדגל--token TOKEN
במערכת CI.
זהו סדר הקדימות של טעינת האסימון: דגל, משתנה סביבה, פרויקט Firebase הרצוי.
הפעלה של פרויקט Firebase
כדי לבצע משימות נפוצות רבות באמצעות ה-CLI, כמו פריסה בפרויקט Firebase, צריך ספריית פרויקט. יוצרים ספריית פרויקט באמצעות הפקודה firebase init
. ספריית הפרויקט היא בדרך כלל אותה הספרייה ברמה הבסיסית (root) של בקרת המקור, ואחרי שמריצים את firebase init
הספרייה מכילה קובץ תצורה מסוג firebase.json
.
כדי להפעיל פרויקט Firebase חדש, מריצים את הפקודה הבאה מספריית האפליקציה:
firebase init
הפקודה firebase init
כוללת הוראות מפורטות להגדרה של ספריית הפרויקט ושל חלק מהמוצרים של Firebase. במהלך אתחול הפרויקט, ה-CLI של Firebase מבקש מכם לבצע את המשימות הבאות:
בוחרים את המוצרים שרוצים להגדיר ב-Firebase בפרויקט Firebase.
בשלב הזה מתבקשים להגדיר הגדרות לקבצים ספציפיים למוצרים שנבחרו. מידע נוסף על ההגדרות האלה זמין במסמכי התיעוד של המוצר הספציפי (למשל, אירוח). שימו לב: תמיד אפשר להריץ את
firebase init
מאוחר יותר כדי להגדיר עוד מוצרים של Firebase.בוחרים פרויקט ברירת מחדל ב-Firebase.
השלב הזה משייך את ספריית הפרויקט הנוכחית לפרויקט Firebase, כך שפקודות ספציפיות לפרויקט (כמו
firebase deploy
) יפעלו מול פרויקט Firebase המתאים.אפשר גם לשייך כמה פרויקטים של Firebase (כמו פרויקט Staging ופרויקט ייצור) לאותה ספריית פרויקטים.
בסיום האתחול, מערכת Firebase יוצרת באופן אוטומטי את שני הקבצים הבאים ברמה הבסיסית (root) של ספריית האפליקציות המקומית:
קובץ תצורה
firebase.json
שמציג את רשימת ההגדרות של הפרויקט.קובץ
.firebaserc
שבו מאוחסנים aliases של הפרויקט.
הקובץ firebase.json
הפקודה firebase init
יוצרת קובץ תצורה של firebase.json
ברמה הבסיסית (root) של ספריית הפרויקט.
הקובץ firebase.json
נדרש כדי לפרוס נכסים באמצעות ה-CLI של Firebase כי הוא מציין אילו קבצים והגדרות מספריית הפרויקט פרוסים בפרויקט Firebase שלכם. מאחר שאפשר לקבוע הגדרות מסוימות בספריית הפרויקטים או במסוף Firebase, חשוב לפתור את כל התנגשויות הפריסה האפשריות.
ניתן להגדיר את רוב אפשרויות האירוח ב-Firebase ישירות בקובץ firebase.json
. עם זאת, בשירותי Firebase אחרים שאפשר לפרוס באמצעות ה-CLI של Firebase, הפקודה firebase init
יוצרת קבצים ספציפיים שבהם אפשר לקבוע הגדרות לשירותים האלה, כמו קובץ index.js
ל-Cloud Functions. אפשר גם להגדיר קטעי הוק (hooks) לפריסה מראש או לפריסה לאחר הפריסה בקובץ firebase.json
.
לפניכם קובץ firebase.json
לדוגמה עם הגדרות ברירת מחדל, אם בוחרים ב-Firebase Hosting, ב-Cloud Firestore וב-Cloud Functions for Firebase (עם בחירת האפשרות 'מקור TypeScript' ו'איתור שגיאות בקוד') במהלך האתחול.
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
}
אמנם משתמשים ב-firebase.json
כברירת מחדל, אבל אפשר להעביר את הדגל --config PATH
כדי לציין קובץ תצורה חלופי.
הגדרה למספר מסדי נתונים של Cloud Firestore
כשמריצים את firebase init
, הקובץ firebase.json
יכיל מפתח firestore
יחיד שתואם למסד הנתונים שמוגדר כברירת מחדל בפרויקט, כמו שמתואר למעלה.
אם הפרויקט מכיל כמה מסדי נתונים של Cloud Firestore, צריך לערוך את הקובץ firebase.json
כך שישייך לכל מסד נתונים כללי אבטחה שונים וקובצי מקור שונים של אינדקס של מסד הנתונים. משנים את הקובץ באמצעות מערך JSON, עם רשומה אחת לכל מסד נתונים.
"firestore": [
{
"database": "default",
"rules": "firestore.default.rules",
"indexes": "firestore.default.indexes.json"
},
{
"database": "ecommerce",
"rules": "firestore.ecommerce.rules",
"indexes": "firestore.ecommerce.indexes.json"
}
],
קבצים ב-Cloud Functions שיש להתעלם מהם בפריסה
בזמן פריסת הפונקציה, ה-CLI מציין באופן אוטומטי רשימה של קבצים בספרייה functions
שיש להתעלם מהם. כך אפשר למנוע פריסה של קבצים מיותרים בקצה העורפי שעלולים להגדיל את נפח הנתונים בפריסה.
כברירת מחדל, רשימת הקבצים שהמערכת מתעלמת מהם ומוצגת בפורמט JSON:
"ignore": [
".git",
".runtimeconfig.json",
"firebase-debug.log",
"firebase-debug.*.log",
"node_modules"
]
אם אתם מוסיפים ערכים מותאמים אישית משלכם ל-ignore
ב-firebase.json
, חשוב לשמור (או להוסיף, אם חסרה) את רשימת הקבצים המוצגת למעלה.
ניהול כינויי פרויקטים
ניתן לשייך כמה פרויקטים של Firebase לאותה ספריית פרויקטים.
לדוגמה, יכול להיות שתרצו להשתמש בפרויקט Firebase אחד ל-Staging ובפרויקט אחר לייצור. באמצעות סביבות פרויקט שונות אפשר לאמת את השינויים לפני הפריסה לייצור. הפקודה firebase use
מאפשרת לעבור בין כינויים וליצור כינויים חדשים.
הוספת כינוי לפרויקט
כשבוחרים פרויקט Firebase במהלך אתחול הפרויקט, הכינוי default
מוקצה לפרויקט באופן אוטומטי. עם זאת, כדי לאפשר לפקודות ספציפיות לפרויקט לרוץ בפרויקט Firebase אחר ועדיין להשתמש באותה ספריית פרויקטים, מריצים את הפקודה הבאה מספריית הפרויקט:
firebase use --add
הפקודה הזו תבקש מכם לבחור פרויקט אחר ב-Firebase ולהקצות את הפרויקט ככינוי. הקצאות כינויים נכתבות בקובץ .firebaserc
בתוך ספריית הפרויקט שלכם.
שימוש בכינויי פרויקטים
כדי להשתמש בכינויים של פרויקטים ב-Firebase, מריצים כל אחת מהפקודות הבאות מספריית הפרויקטים.
פקודה | תיאור |
---|---|
firebase use |
הצגת רשימה של הכינויים המוגדרים כרגע עבור ספריית הפרויקטים שלך |
firebase use \ |
מפנה את כל הפקודות להרצה בפרויקט Firebase שצוין.
ה-CLI משתמש בפרויקט הזה כ "פרויקט הפעיל" הנוכחי. |
firebase use --clear |
ניקוי הפרויקט הפעיל.
כדי להגדיר פרויקט פעיל חדש, מריצים את |
firebase use \ |
מסיר את הכינוי מספריית הפרויקט. |
אפשר לשנות את מה שמוגדר כפרויקט הפעיל הנוכחי על ידי העברת הדגל --project
באמצעות כל פקודת CLI. לדוגמה, אפשר להגדיר את ה-CLI כך שיפעל מול פרויקט Firebase שהקציתם לו את כתובות האימייל החלופיות staging
. אם רוצים להריץ פקודה אחת כנגד הפרויקט ב-Firebase שהוקצה לה הכינוי prod
, אפשר להריץ לדוגמה את
.
בקרת מקור וכינויי פרויקטים
באופן כללי, יש לבדוק את הקובץ .firebaserc
בבקרת המקור כדי לאפשר לצוות לשתף כינויי פרויקטים. עם זאת, בפרויקטים של קוד פתוח או בתבניות למתחילים, בדרך כלל לא כדאי לבדוק את הקובץ .firebaserc
.
אם יש לכם פרויקט פיתוח שמיועד לשימושכם בלבד, תוכלו להעביר את הדגל --project
בכל פקודה או להריץ את firebase use PROJECT_ID
בלי להקצות כינוי לפרויקט Firebase.
הצגת פרויקט Firebase ובדיקה שלו באופן מקומי
אפשר להציג ולבדוק את פרויקט Firebase בכתובות URL שמתארחות באופן מקומי לפני הפריסה לסביבת הייצור. אם רוצים לבדוק רק תכונות נבחרות, אפשר להשתמש ברשימה שמופרדת בפסיקים בדגל בפקודה firebase serve
.
אם רוצים לבצע אחת מהמשימות הבאות, מריצים את הפקודה הבאה מהשורש של ספריית הפרויקטים המקומית:
- מציגים את התוכן הסטטי של האפליקציה שמתארחת ב-Firebase.
- תוכלו להשתמש בפונקציות Cloud כדי ליצור תוכן דינמי לאירוח ב-Firebase, ואתם רוצים להשתמש בפונקציות ה-HTTP ייצור (פריסה) כדי לבצע אמולציה של האירוח בכתובת URL מקומית.
firebase serve --only hosting
אמולציה של הפרויקט באמצעות פונקציות HTTP מקומיות
כדי לחקות את הפרויקט באמצעות פונקציות HTTP מקומיות, מריצים את הפקודות הבאות מספריית הפרויקט.
כדי לחקות פונקציות HTTP ואירוח לבדיקה של כתובות URL מקומיות, משתמשים באחת מהפקודות הבאות:
firebase serve
firebase serve --only functions,hosting // uses a flag
כדי לחקות פונקציות HTTP בלבד, משתמשים בפקודה הבאה:
firebase serve --only functions
בדיקה ממכשירים מקומיים אחרים
כברירת מחדל, firebase serve
מגיב רק לבקשות של localhost
. כלומר, תוכלו לגשת לתוכן המתארח במחשב מדפדפן האינטרנט במחשב, אבל לא ממכשירים אחרים ברשת. אם רוצים לבדוק מכשירים מקומיים אחרים, השתמשו בדגל --host
, כך:
firebase serve --host 0.0.0.0 // accepts requests to any host
פריסה בפרויקט Firebase
ה-CLI של Firebase מנהל את פריסת הקוד והנכסים בפרויקט Firebase, כולל:
- גרסאות חדשות של האתרים שלך באירוח ב-Firebase
- Cloud Functions for Firebase חדש, מעודכן או קיים
- כללים למסד נתונים בזמן אמת ב-Firebase
- כללים ל-Cloud Storage for Firebase
- כללים ל-Cloud Firestore
- מדדים של Cloud Firestore
כדי לפרוס בפרויקט Firebase, מריצים את הפקודה הבאה מספריית הפרויקטים:
firebase deploy
באופן אופציונלי, אפשר להוסיף הערה לכל אחת מהפריסות. התגובה הזו תוצג יחד עם שאר פרטי הפריסה בדף אירוח ב-Firebase של הפרויקט. למשל:
firebase deploy -m "Deploying the best new feature ever."
כשמשתמשים בפקודה firebase deploy
, חשוב לשים לב לדברים הבאים:
כדי לפרוס משאבים מספריית פרויקט, ספריית הפרויקט חייבת להכיל קובץ
firebase.json
. הקובץ הזה נוצר בשבילכם באופן אוטומטי באמצעות הפקודהfirebase init
.כברירת מחדל,
firebase deploy
יוצר גרסה עבור כל המשאבים לפריסה בספריית הפרויקט שלך. כדי לפרוס תכונות או שירותים ספציפיים של Firebase, צריך להשתמש בפריסה חלקית.
התנגשויות פריסה לכללי אבטחה
עבור מסד נתונים בזמן אמת ב-Firebase, Cloud Storage for Firebase ו-Cloud Firestore, אפשר להגדיר כללי אבטחה בספריית הפרויקטים המקומית או במסוף Firebase.
אפשרות נוספת למניעת התנגשויות בפריסה היא שימוש בפריסה חלקית ולהגדיר כללים רק במסוף Firebase.
מכסות לפריסה
יכול להיות (אבל לא סביר) שתחרגו ממכסה שמגבילה את הקצב או הנפח של פעולות הפריסה של Firebase. לדוגמה, כשפורסים מספר גדול מאוד של פונקציות, יכול להיות שתתקבל הודעת השגיאה HTTP 429 Quota
. כדי לפתור בעיות כאלה, כדאי לנסות להשתמש בפריסה חלקית.
החזרת פריסה למצב הקודם
אפשר להחזיר את הפריסה של אירוח ב-Firebase לגרסה הקודמת בדף אירוח ב-Firebase על ידי בחירה בפעולה החזרה למצב הקודם לגרסה הרצויה.
בשלב זה אי אפשר לבטל גרסאות של כללי אבטחה למסד נתונים בזמן אמת ב-Firebase, ל-Cloud Storage for Firebase או ל-Cloud Firestore.
פריסה של שירותי Firebase ספציפיים
אם רוצים לפרוס רק תכונות או שירותים ספציפיים של Firebase, אפשר להשתמש ברשימה שמופרדת בפסיקים בדגל בפקודה firebase deploy
. לדוגמה, הפקודה הבאה פורסת תוכן ב-Firebase Hosting ואת כללי האבטחה של Cloud Storage.
firebase deploy --only hosting,storage
בטבלה הבאה מפורטים השירותים והתכונות הזמינים לפריסה חלקית. השמות בדגלים תואמים למפתחות שבקובץ התצורה firebase.json
.
תחביר הסימונים | שירות או תכונה שנפרסו |
---|---|
--only hosting |
תוכן של אירוח ב-Firebase |
--only database |
הכללים של מסד נתונים בזמן אמת ב-Firebase |
--only storage |
כללים של Cloud Storage for Firebase |
--only firestore |
הכללים של Cloud Firestore וגם אינדקסים לכל מסדי הנתונים שהוגדרו |
--only functions |
Cloud Functions for Firebase (יש אפשרות לקבל גרסאות ספציפיות יותר של הדגל הזה) |
פריסה של פונקציות ספציפיות
כאשר פורסים פונקציות, ניתן לטרגט פונקציות ספציפיות. למשל:
firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2
אפשרות אחרת היא לקבץ פונקציות לקבוצות ייצוא בקובץ /functions/index.js
. קיבוץ פונקציות מאפשר לפרוס כמה פונקציות באמצעות פקודה אחת.
לדוגמה, אפשר לכתוב את הפונקציות הבאות כדי להגדיר groupA
ו-groupB
:
var functions = require('firebase-functions');
exports.groupA = {
function1: functions.https.onRequest(...),
function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');
בדוגמה הזו, קובץ functions/groupB.js
נפרד מכיל פונקציות נוספות שמגדירות באופן ספציפי את הפונקציות ב-groupB
. למשל:
var functions = require('firebase-functions');
exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);
בדוגמה הזו, תוכלו לפרוס את כל הפונקציות של groupA
על ידי הרצת הפקודה הבאה מספריית הפרויקט:
firebase deploy --only functions:groupA
לחלופין, אפשר לטרגט פונקציה ספציפית בתוך קבוצה על ידי הרצת הפקודה הבאה:
firebase deploy --only functions:groupA.function1,groupB.function4
מחיקת פונקציות
ה-CLI של Firebase תומך בפקודות ובאפשרויות הבאות למחיקת פונקציות שנפרסו בעבר:
מחיקת כל הפונקציות שתואמות לשם שצוין בכל האזורים:
firebase functions:delete FUNCTION-1_NAME
מחיקת פונקציה ספציפית שפועלת באזור שלא מוגדר כברירת המחדל:
firebase functions:delete FUNCTION-1_NAME --region REGION_NAME
מאפשרת למחוק יותר מפונקציה אחת:
firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME
מחיקת קבוצת פונקציות שצוינה:
firebase functions:delete GROUP_NAME
המערכת תעקוף את בקשת האישור:
firebase functions:delete FUNCTION-1_NAME --force
איך להגדיר משימות מבוססות סקריפט לפריסה מראש ולפריסה לאחר פריסה
אפשר לחבר סקריפטים של מעטפת לפקודה firebase deploy
כדי לבצע משימות של פריסה מראש או פריסה לאחר הפריסה. לדוגמה, סקריפט לפריסה מראש יכול להעביר את קוד TypeScript ל-JavaScript, ו-hook לאחר פריסה מאוחרת יכול להודיע לאדמינים על פריסות של תוכן חדש באתר לאירוח ב-Firebase.
כדי להגדיר הוּק (hooks) לפריסה מראש או לפריסה לאחר הפריסה, צריך להוסיף סקריפטים של Bash לקובץ התצורה firebase.json
. אפשר להגדיר סקריפטים קצרים ישירות בקובץ firebase.json
, או להפנות לקבצים אחרים שנמצאים בספריית הפרויקט.
לדוגמה, הסקריפט הבא הוא הביטוי firebase.json
למשימת פריסה מאוחרת ששולחת הודעה ב-Slack אחרי פריסה מוצלחת לאירוח ב-Firebase.
"hosting": {
// ...
"postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
"public": "public"
}
קובץ הסקריפט messageSlack.sh
נמצא בספריית הפרויקט ונראה כך:
curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}' \https://SLACK_WEBHOOK_URL
אפשר להגדיר ה-hooks של predeploy
ו-postdeploy
לכל אחד מהנכסים שאפשר לפרוס. שימו לב שהרצת firebase deploy
מפעילה את כל משימות הפריסה מראש והפריסה לאחר הפריסה שהוגדרו בקובץ firebase.json
. כדי להריץ רק את המשימות שמשויכות לשירות Firebase ספציפי, צריך להשתמש בפקודות פריסה חלקיות.
גם ה-hooks predeploy
וגם postdeploy
מדפיסים לטרמינל את זרמי הפלט והשגיאות הרגילים של הסקריפטים. במקרים של כשלים, חשוב לשים לב לנקודות הבאות:
- אם הוק (hook) לפריסה מראש לא יושלם כמצופה, הפריסה תבוטל.
- אם הפריסה נכשלת מסיבה כלשהי, ה-hooks לפריסה הבאה לא יופעלו.
משתני סביבה
בסקריפטים שפועלים ב-hooks של פריסה לפני ופריסה לאחר הפריסה, משתני הסביבה הבאים זמינים:
$GCLOUD_PROJECT
: מזהה הפרויקט הפעיל$PROJECT_DIR
: ספריית הבסיס שמכילה את הקובץfirebase.json
$RESOURCE_DIR
: (לסקריפטיםhosting
ו-functions
בלבד) המיקום של הספרייה שמכילה את המשאבים של האירוח או של Cloud Functions לפריסה
ניהול מופעים מרובים של מסד נתונים בזמן אמת
לפרויקט Firebase יכולים להיות מספר מכונות של מסד נתונים בזמן אמת ב-Firebase. כברירת מחדל, פקודות CLI מקיימות אינטראקציה עם מופע מסד הנתונים ברירת המחדל.
עם זאת, אפשר לבצע אינטראקציה עם מופע של מסד נתונים שלא מוגדר כברירת המחדל באמצעות הדגל --instance DATABASE_NAME
--instance
:
firebase database:get
firebase database:profile
firebase database:push
firebase database:remove
firebase database:set
firebase database:update
מסמך עזר של פקודות
פקודות ניהול ב-CLI
פקודה | תיאור |
---|---|
עזרה | הצגת מידע עזרה על ה-CLI או פקודות ספציפיות. |
init | משייכת ומגדירה פרויקט Firebase חדש בספרייה הנוכחית.
הפקודה הזו יוצרת קובץ תצורה של firebase.json בספרייה הנוכחית. |
login | מאמת את ה-CLI עם חשבון Firebase שלכם. נדרשת גישה
לדפדפן אינטרנט. כדי להתחבר ל-CLI בסביבות מרוחקות שלא מאפשרות גישה אל localhost , משתמשים בדגל --no-localhost |
login:ci | יוצר אסימון אימות לשימוש בסביבות לא אינטראקטיביות. |
התנתקות | ניתוק ה-CLI מחשבון Firebase שלכם. |
פתיחה | פתיחת דפדפן למשאבים הרלוונטיים בפרויקט. |
projects:list | הצגת כל הפרויקטים ב-Firebase שאליהם יש לכם גישה. |
להשתמש | מגדיר את פרויקט Firebase הפעיל עבור ה-CLI. ניהול כינויים של פרויקטים. |
פקודות לניהול פרויקטים
פקודה | תיאור | |
---|---|---|
ניהול פרויקטים של Firebase | ||
projects:addfirebase | הוספה של משאבי Firebase לפרויקט קיים ב-Google Cloud. | |
projects:create | יוצרים פרויקט חדש ב-Google Cloud ולאחר מכן מוסיפים את המשאבים של Firebase לפרויקט החדש. | |
projects:list | הצגת כל הפרויקטים ב-Firebase שאליהם יש לכם גישה. | |
ניהול אפליקציות ב-Firebase (iOS, Android, אינטרנט) | ||
apps:create | יצירה של אפליקציית Firebase חדשה בפרויקט הפעיל. | |
apps:list | רשימה של אפליקציות Firebase הרשומות בפרויקט הפעיל. | |
apps:sdkconfig | מדפיס את ההגדרות של שירותי Google של אפליקציית Firebase. | |
setup:web | הוצא משימוש. במקום זאת, צריך להשתמש ב-apps:sdkconfig
ולציין את web כארגומנט של הפלטפורמה.מדפיס את ההגדרות של שירותי Google של אפליקציית אינטרנט ב-Firebase. |
|
ניהול גיבובים של אישורי SHA (ב-Android בלבד) | ||
apps:android:sha:create \ FIREBASE_APP_ID SHA_HASH |
הוספה של גיבוב אישור ה-SHA שצוין לאפליקציית Firebase ל-Android שצוינה. | |
apps:android:sha:delete \ FIREBASE_APP_ID SHA_HASH |
מחיקת הגיבוב (hash) של אישור ה-SHA שצוין מאפליקציית Firebase ל-Android שצוינה. | |
apps:android:sha:list \ FIREBASE_APP_ID |
בתיבת הדו-שיח הזו מפורטים הגיבובים של אישור ה-SHA של אפליקציית Firebase ל-Android שצוינה. |
פריסה ופיתוח מקומי
הפקודות האלה מאפשרות לכם לפרוס את האתר שלכם ב-Firebase Hosting ולקיים איתו אינטראקציה.
פקודה | תיאור |
---|---|
deploy | פריסה של קוד ונכסים מספריית הפרויקט אל הפרויקט הפעיל. לאירוח ב-Firebase, צריך
קובץ תצורה של
firebase.json .
|
serve | מפעיל שרת אינטרנט מקומי עם הגדרת האירוח ב-Firebase.
לאירוח ב-Firebase, צריך
קובץ תצורה של
firebase.json . |
פקודות של הפצת אפליקציות
פקודה | תיאור |
---|---|
appdistribution:distribution \ --app FIREBASE_APP_ID |
הופך את ה-build לזמין לבודקים. |
appdistribution:testers:add | הוספת בודקים לפרויקט. |
appdistribution:testers:remove | מתבצעת הסרה של בודקים מהפרויקט. |
פקודות אימות (ניהול משתמשים)
פקודה | תיאור |
---|---|
auth:export | המערכת מייצאת את חשבונות המשתמשים של הפרויקט הפעיל לקובץ JSON או CSV. לפרטים נוספים, אפשר לעיין בדף auth:Import ו-auth:export. |
auth:import | מייבאת את חשבונות המשתמשים מקובץ JSON או CSV לפרויקט הפעיל. לפרטים נוספים, אפשר לעיין בדף auth:Import ו-auth:export. |
פקודות Cloud Firestore
פקודה | תיאור |
---|---|
firestore:locations |
הצגת רשימה של המיקומים הזמינים למסד הנתונים של Cloud Firestore. |
firestore:databases:create DATABASE_ID |
יוצרים מופע של מסד נתונים במצב מקורי בפרויקט Firebase. הפקודה לוקחת את הדגלים הבאים:
|
firestore:databases:list |
הצגת רשימה של מסדי נתונים בפרויקט Firebase. |
firestore:databases:get DATABASE_ID |
קבלת הגדרה של מסד נתונים למסד נתונים ספציפי בפרויקט Firebase. |
firestore:databases:update DATABASE_ID |
אפשר לעדכן את ההגדרה של מסד הנתונים של מסד נתונים מסוים בפרויקט Firebase. יש צורך בסימון אחד לפחות. הפקודה לוקחת את הדגלים הבאים:
|
firestore:databases:delete DATABASE_ID |
מוחקים מסד נתונים בפרויקט Firebase. |
firestore:indexes |
הצגת רשימה של אינדקסים של מסד נתונים בפרויקט Firebase. הפקודה נושאת את הדגל הבא:
|
firestore:delete |
מחיקת המסמכים במסד הנתונים של הפרויקט הפעיל. באמצעות CLI, אפשר למחוק באופן רקורסיבי את כל המסמכים באוסף. חשוב לזכור שמחיקת נתוני Cloud Firestore באמצעות ה-CLI כרוכה בעלויות קריאה ומחיקה. מידע נוסף זמין במאמר הסבר על החיוב ב-Cloud Firestore. הפקודה נושאת את הדגל הבא:
|
פקודות Cloud Functions for Firebase
פקודה | תיאור |
---|---|
functions:config:clone | שכפול סביבה של פרויקט אחר אל פרויקט Firebase הפעיל. |
functions:config:get | מאחזרת את ערכי התצורה הקיימים של ה-Cloud Functions של הפרויקט הפעיל. |
functions:config:set | שמירת ערכי התצורה של זמן ריצה של ה-Cloud Functions של הפרויקט הפעיל. |
functions:config:unset | הסרת הערכים מההגדרה הפעילה של זמן הריצה של הפרויקט. |
functions:log | קריאת יומנים מ-Cloud Functions שנפרסו. |
מידע נוסף זמין במסמכי התיעוד בנושא הגדרת סביבה.
פקודות Crashlytics
פקודה | תיאור |
---|---|
crashlytics:mappingfile:generateid \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML |
יוצר מזהה קובץ מיפוי ייחודי בקובץ משאב Android (XML) שצוין. |
crashlytics:mappingfile:upload \ --app=FIREBASE_APP_ID \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML \ PATH/TO/MAPPING_FILE.TXT |
העלאת קובץ מיפוי תואם ל-ProGuard (TXT) לאפליקציה הזו, ושיוך שלו למזהה קובץ המיפוי שהוצהר בקובץ המשאב של Android (XML) שצוין. |
crashlytics:symbols:upload \ --app=FIREBASE_APP_ID \ PATH/TO/SYMBOLS |
יצירת קובץ סמלים שתואם ל-Crashlytics עבור קריסות של ספריית נייטיב ב-Android ומעלה אותו לשרתים של Firebase. |
פקודות של תוספים
פקודה | תיאור |
---|---|
ext | מידע על אופן השימוש בפקודות של התוספים ל-Firebase. רשימה של מופעי התוספים שהותקנו בפרויקט הפעיל. |
ext:הגדרה \ EXTENSION_INSTANCE_ID |
מגדירה מחדש את ערכי הפרמטרים של מופע של תוסף במניפסט של התוסף. |
ext:info \ PUBLISHER_ID/EXTENSION_ID |
מדפיסה מידע מפורט על תוסף. |
ext:install \ PUBLISHER_ID/EXTENSION_ID |
מוסיף מופע חדש של תוסף למניפסט של התוסף. |
ext:list | רשימה של כל מופעי התוספים שהותקנו בפרויקט Firebase. מדפיסה את מזהה המכונה של כל תוסף. |
תוספים:הסרת התקנה \ EXTENSION_INSTANCE_ID |
מסיר מופע של תוסף מהמניפסט של התוסף. |
ext:update \ EXTENSION_INSTANCE_ID |
מעדכן מופע של תוסף לגרסה האחרונה של המניפסט של התוסף. |
ext:export | המערכת מייצאת את כל המופעים של התוספים שהותקנו מהפרויקט אל המניפסט של התוסף. |
פקודות של בעלי תוכן דיגיטלי בתוספים
פקודה | תיאור |
---|---|
ext:dev:init | הפעלת בסיס קוד בסיסי לתוסף חדש בספרייה הנוכחית. |
ext:dev:list \ PUBLISHER_ID |
מדפיס רשימה של כל התוספים שהועלו על ידי מוציא לאור. |
ext:dev:register | רושם פרויקט Firebase בתור פרויקט בעל אפליקציה של תוספים. |
ext:dev:deprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
מוציאים משימוש
גרסאות של תוספים שתואמות למשוואת הגרסה. חיזוי של גרסה יכול להיות גרסה יחידה (למשל 1.0.0 ),
או טווח של גרסאות (למשל >1.0.0 ).אם לא צוין חיזוי גרסה, נוציא משימוש את כל הגרסאות של התוסף הזה. |
ext:dev:undeprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
מוציאים משימוש גרסאות של תוספים שתואמות לגרסה משוייפת. חיזוי של גרסה יכול להיות גרסה יחידה (למשל 1.0.0 ),
או טווח של גרסאות (למשל >1.0.0 ).אם לא צוין חיזוי גרסה, נוציא משימוש את כל הגרסאות של התוסף הזה. |
ext:dev:upload \ PUBLISHER_ID/EXTENSION_ID |
מעלה גרסה חדשה של תוסף. |
ext:dev:usage \ PUBLISHER_ID |
מציגה ספירות של התקנות ומדדי שימוש עבור תוספים שהועלו על ידי בעל תוכן דיגיטלי. |
פקודות אירוח
פקודה | תיאור |
---|---|
hosting:disable |
יפסיק להציג את התנועה של אירוח ב-Firebase בפרויקט Firebase הפעיל. אחרי הרצת הפקודה הזו, כתובת ה-URL לאירוח הפרויקט תציג את ההודעה "האתר לא נמצא". |
ניהול אתרי אירוח | |
Firebase Host:sites:create \ SITE_ID |
יצירת אתר אירוח חדש בפרויקט Firebase הפעיל באמצעות
(אופציונלי) מציינים אפליקציית אינטרנט קיימת של Firebase שרוצים לשייך
לאתר החדש על ידי העברת הדגל הבא:
|
Firebase Host:sites:delete \ SITE_ID |
מחיקת אתר האירוח שצוין ה-CLI יציג בקשת אישור לפני מחיקת האתר. (אופציונלי) אפשר לדלג על הודעת האישור על ידי העברת
הדגלים הבאים: |
Firebase Host:sites:get \ SITE_ID |
שולפת מידע על אתר האירוח שצוין |
firebase Host:sites:list |
רשימה של כל אתרי האירוח של פרויקט Firebase הפעיל |
ניהול ערוצי תצוגה מקדימה | |
Firebase Host:channel:create \ CHANNEL_ID |
יצירת ערוץ תצוגה מקדימה חדש
ברירת המחדל של אתר האירוח באמצעות פקודה זו לא נפרסת בערוץ. |
Firebase Host:channel:delete \ CHANNEL_ID |
מחיקת ערוץ התצוגה המקדימה שצוין לא ניתן למחוק ערוץ בשידור חי של אתר. |
Firebase Host:channel:deploy \ CHANNEL_ID |
פורס את התוכן והתצורה שלך באירוח לערוץ התצוגה המקדימה שצוין אם ערוץ התצוגה המקדימה עדיין לא קיים, הפקודה הזו תיצור את הערוץ באתר האירוח ברירת המחדל לפני הפריסה בערוץ. |
Firebase host:channel:list | פירוט כל הערוצים (כולל הערוץ 'בשידור חי') ברירת המחדל באתר האירוח |
Firebase Host:channel:open \ CHANNEL_ID |
פתיחת דפדפן לכתובת ה-URL של הערוץ שצוין או החזרת כתובת ה-URL אם לא ניתן לפתוח בדפדפן |
שכפול גרסה | |
Firebase Host:clone \ SOURCE_SITE_ID:SOURCE_CHANNEL_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
שכפול הגרסה האחרונה שנפרסה בערוץ ה-"source" שצוין לערוץ ה-"target" שצוין הפקודה הזו נפרסת גם לערוץ ה-"target" שצוין. אם ערוץ ה"יעד" לא קיים עדיין, הפקודה הזו יוצרת ערוץ תצוגה מקדימה חדש באתר האירוח של "target" לפני הפריסה בערוץ. |
Firebase Host:clone \ SOURCE_SITE_ID:@VERSION_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
שכפול הגרסה שצוינה לערוץ ה-"target" שצוין הפקודה הזו נפרסת גם לערוץ ה-"target" שצוין. אם ערוץ ה"יעד" לא קיים עדיין, הפקודה הזו יוצרת ערוץ תצוגה מקדימה חדש באתר האירוח של "target" לפני הפריסה בערוץ.
|
פקודות במסד הנתונים בזמן אמת
שימו לב: אפשר ליצור את המופע הראשוני של מסד הנתונים בזמן אמת כברירת מחדל במסוף Firebase, או באמצעות תהליך העבודה הכללי firebase init
או באמצעות התהליך הספציפי של firebase init database
.
אחרי שיוצרים מכונות, אפשר לנהל אותן כפי שמוסבר במאמר ניהול מכונות מרובות של מסדי נתונים בזמן אמת.
פקודה | תיאור |
---|---|
database:get | מאחזר נתונים ממסד הנתונים של הפרויקט הפעיל ומציג אותם כ-JSON. תומכת בהרצת שאילתות על נתונים שנוספו לאינדקס. |
database:instances:create | יצירת מופע של מסד נתונים עם שם מכונה שצוין. מקבל את האפשרות --location ליצירת מסד נתונים באזור שצוין. במאמר בחירת מיקומים לפרויקט מוסבר איך בוחרים שמות של אזורים באפשרות הזו.
אם לא קיימת מופע של מסד נתונים בפרויקט הנוכחי, תוצג בקשה להריץ את התהליך של firebase init כדי ליצור מכונה.
|
database:instances:list | הצגת רשימה של כל המופעים של מסדי הנתונים בפרויקט הזה. מקבל את האפשרות --location להצגת רשימה של מסדי נתונים באזור מסוים. למידע על שמות אזורים שבהם ניתן להשתמש באפשרות הזו, ראו בחירת מיקומים לפרויקט. |
database:profile | יוצר פרופיל של פעולות במסד הנתונים של הפרויקט הפעיל. לפרטים נוספים אפשר לקרוא את סוגי הפעולות במסד נתונים בזמן אמת. |
database:push | דוחפים נתונים חדשים לרשימה במיקום שצוין במסד הנתונים של הפרויקט הפעיל. מקבל קלט מקובץ, STDIN או ארגומנט של שורת פקודה. |
database:remove | מחיקת כל הנתונים במיקום ספציפי במסד הנתונים של הפרויקט הפעיל. |
database:set | הפעולה מחליפה את כל הנתונים במיקום שצוין במסד הנתונים של הפרויקט הפעיל. מקבל קלט מקובץ, מ-STDIN או מארגומנט של שורת פקודה. |
database:update | מבצע עדכון חלקי במיקום שצוין במסד הנתונים של הפרויקט הפעיל. מקבל קלט מקובץ, STDIN או ארגומנט של שורת פקודה. |
פקודות של הגדרת תצורה מרחוק
פקודה | תיאור |
---|---|
remoteconfig:versions:list \ --limit NUMBER_OF_VERSIONS |
מציין את עשר הגרסאות האחרונות של התבנית. מציינים את הערך 0 כדי להחזיר את כל הגרסאות הקיימות. לחלופין, אפשר להעביר את האפשרות --limit כדי להגביל את מספר הגרסאות שמוחזרות. |
remoteconfig:get \ --v, version_number VERSION_NUMBER --o, פלט FILENAME |
הפונקציה מקבלת את התבנית לפי גרסה (ברירת המחדל היא הגרסה העדכנית ביותר)
ומפיקה בטבלה את קבוצות הפרמטרים, הפרמטרים, שמות התנאים
והגרסה שלהם. אפשר גם לכתוב את הפלט בקובץ ספציפי באמצעות -o, FILENAME . |
remoteconfig:rollback \ --v, version_number VERSION_NUMBER --force |
מחזיר את התבנית של הגדרת התצורה מרחוק למספר גרסה קודם שצוין או חוזר לגרסה הקודמת (גרסה 1- נוכחית) המוגדר כברירת מחדל. אם לא עוברים את --force , מוצגת בקשה ל-Y/N
לפני שממשיכים למצב הקודם. |