ממשק ה-CLI של Firebase (GitHub) מגוון כלים לניהול, לצפייה ולפריסה בפרויקטים של Firebase.
לפני שמשתמשים ב-CLI של Firebase, צריך להגדיר פרויקט Firebase.
הגדרה או עדכון של ה-CLI
התקנת ה-CLI של Firebase
אפשר להתקין את ה-CLI של Firebase באמצעות שיטה שתואמת לפעילות שלך
המערכת, רמת הניסיון ו/או תרחיש לדוגמה. ללא קשר לאופן ההתקנה של
CLI, יש לכם גישה לאותה פונקציונליות ולפקודה firebase
.
Windows
אפשר להתקין את ה-CLI של Firebase ל-Windows באחת מהאפשרויות הבאות:
אפשרות | תיאור | מומלץ עבור... |
---|---|---|
קובץ בינארי עצמאי | מורידים את קובץ הבינארי העצמאי של ה-CLI. לאחר מכן תוכלו לגשת
את קובץ ההפעלה כדי לפתוח מעטפת שבה ניתן להריץ את
הפקודה firebase .
|
מפתחים חדשים מפתחים שלא משתמשים בהם או לא מכירים אותם Node.js |
npm | השתמשו ב-npm (מנהל חבילות הצמתים) כדי להתקין את ה-CLI ולהפעיל
הפקודה firebase שזמינה בכל העולם.
|
מפתחים שמשתמשים Node.js |
קובץ בינארי עצמאי
כדי להוריד ולהפעיל את הקובץ הבינארי עבור ה-CLI של Firebase, פועלים לפי השלבים הבאים:
מורידים את Firebase קוד בינארי של CLI עבור Windows
ניגשים לקובץ הבינארי כדי לפתוח מעטפת שבה אפשר להריץ את הפקודה
firebase
.ממשיכים להתחבר ולבדוק את ה-CLI.
npm
כדי להשתמש ב-npm
(מנהל חבילות הצמתים) כדי להתקין את
Firebase CLI, צריך לבצע את השלבים הבאים:
מתקינים את Node.js באמצעות חלונות NVM (מנהל גרסאות הצומת). התקנת Node.js מתקינה באופן אוטומטי כלי הפקודה
npm
.מריצים את הפקודה הבאה כדי להתקין את ה-CLI Firebase דרך
npm
:npm install -g firebase-tools
הפקודה הזו מפעילה את הפקודה
firebase
שזמינה בכל העולם.ממשיכים להתחבר ולבדוק את ה-CLI.
macOS או Linux
אתם יכולים להתקין את ה-CLI Firebase ל-macOS או ל-Linux באמצעות אחד האפשרויות הבאות:
אפשרות | תיאור | מומלץ עבור... |
---|---|---|
סקריפט התקנה אוטומטי | להריץ פקודה אחת שמאתרת באופן אוטומטי את מערכת ההפעלה,
יוריד את הגרסה האחרונה של ה-CLI, ואז יפעיל את
הפקודה firebase .
|
מפתחים חדשים מפתחים שלא משתמשים בהם או לא מכירים אותם Node.js פריסות אוטומטיות במסגרת CI/CD סביבה |
קובץ בינארי עצמאי | מורידים את הקובץ הבינארי הנפרד ל-CLI. לאחר מכן תוכלו: להגדיר ולהפעיל את הקובץ הבינארי בהתאם לתהליך העבודה שלכם. | תהליכי עבודה שניתנים להתאמה אישית באופן מלא באמצעות CLI |
NPM | משתמשים ב-npm (מנהל החבילות של Node) כדי להתקין את ה-CLI ולהפעיל את הפקודה firebase שזמינה בכל העולם.
|
מפתחים שמשתמשים Node.js |
סקריפט להתקנה אוטומטית
כדי להתקין את ה-CLI Firebase באמצעות סקריפט ההתקנה האוטומטית, פועלים לפי ההוראות את השלבים הבאים:
מריצים את פקודת ה-cURL הבאה:
curl -sL https://firebase.tools | bash
הסקריפט מזהה אוטומטית את מערכת ההפעלה, מוריד את הגרסה האחרונה של ה-CLI של Firebase, ולאחר מכן מאפשרת את ההפצה בכל העולם הפקודה
firebase
.ממשיכים להתחבר ולבדוק את ה-CLI.
דוגמאות ופרטים נוספים לגבי סקריפט ההתקנה האוטומטית: את קוד המקור של הסקריפט firebase.tools
בינארית עצמאית
כדי להוריד ולהריץ את קובץ ה-binary של CLI של Firebase שספציפי למערכת ההפעלה שלכם:
מורידים את הקובץ הבינארי של ה-CLI של Firebase למערכת ההפעלה שלכם: macOS | Linux
(אופציונלי) מגדירים את הפקודה
firebase
שזמינה בכל העולם.- יוצרים את קובץ ההפעלה הבינארי על ידי הרצת
chmod +x ./firebase_tools
. - מוסיפים את הנתיב של הקובץ הבינארי למשתנה PATH.
- יוצרים את קובץ ההפעלה הבינארי על ידי הרצת
ממשיכים להתחבר ולבדוק את ה-CLI.
npm
כדי להשתמש ב-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 תלוי במערכת ההפעלה ובאופן והתקין את ה-CLI.
Windows
- קובץ בינארי עצמאי: הורדת הקובץ החדש version, ואז להחליף אותו במערכת
- npm: מריצים את הפקודה
npm install -g firebase-tools
macOS
- סקריפט להתקנה אוטומטית: מריצים את
curl -sL https://firebase.tools | upgrade=true bash
- קובץ בינארי עצמאי: הורדת הקובץ החדש version, ואז החלפה במערכת שלך
- npm: הפעלה של
npm install -g firebase-tools
Linux
- סקריפט להתקנה אוטומטית: מריצים את
curl -sL https://firebase.tools | upgrade=true bash
- קובץ בינארי עצמאי: הורדת הקובץ החדש version, ואז החלפה במערכת שלך
- npm: הפעלה של
npm install -g firebase-tools
שימוש ב-CLI עם מערכות CI
ה-CLI של Firebase דורש דפדפן כדי להשלים את האימות, אבל CLI תואם באופן מלא ל-CI ולסביבות אחרות ללא דפדפן GUI.
במחשב עם דפדפן, מתקינים את ה-CLI של Firebase.
כדי להתחיל את תהליך הכניסה, מריצים את הפקודה הבאה:
firebase login:ci
עוברים לכתובת ה-URL שצוינה ולאחר מכן מתחברים באמצעות חשבון Google.
הדפסה של רענון של אסימון. הסשן הנוכחי ב-CLI לא יושפע.
אחסון אסימון הפלט בצורה מאובטחת ונגישה במערכת ה-CI.
שימוש באסימון הזה כשמריצים פקודות
firebase
. אפשר להשתמש בכל אחת מהאפשרויות שתי האפשרויות הבאות:אפשרות 1: אחסון האסימון כמשתנה הסביבה
FIREBASE_TOKEN
. המערכת תשתמש בטוקן באופן אוטומטי.אפשרות 2: מריצים את כל פקודות
firebase
עם סימון--token TOKEN
במערכת ה-CI.
זוהי סדר העדיפויות לטעינת האסימון: דגל, משתנה סביבה, פרויקט Firebase הרצוי.
הפעלת פרויקט Firebase
משימות נפוצות רבות שמבוצעות באמצעות ה-CLI, כמו פריסה ב-Firebase
צריך ליצור ספריית פרויקט. אתם יוצרים ספריית פרויקט
באמצעות הפקודה firebase init
. ספריית פרויקט היא בדרך כלל זהה
בתור השורש של פקד המקור, ולאחר הרצת firebase init
,
הספרייה מכילה הגדרה של firebase.json
חדש.
כדי לאתחל פרויקט חדש ב-Firebase, מריצים את הפקודה הבאה מתוך הספרייה של האפליקציה:
firebase init
הפקודה firebase init
מובילה אתכם בתהליך ההגדרה של ספריית הפרויקט ושל חלק ממוצרים של Firebase. במהלך האיפוס של הפרויקט, תתבקשו לבצע את המשימות הבאות ב-CLI של Firebase:
בוחרים את מוצרי Firebase שרוצים להגדיר בפרויקט Firebase.
בשלב הזה תתבקשו לקבוע הגדרות בשביל קבצים ספציפיים מוצרים נבחרים. לקבלת פרטים נוספים על ההגדרות האישיות האלה, עיינו בתיעוד של מוצר ספציפי (לדוגמה, Hosting). שימו לב: תמיד יכול להריץ את הפקודה
firebase init
מאוחר יותר כדי להגדיר עוד מוצרים של Firebase.בוחרים פרויקט ברירת מחדל ב-Firebase.
השלב הזה משייך את ספריית הפרויקט הנוכחית לפרויקט Firebase, שפקודות ספציפיות לפרויקט (כמו
firebase deploy
) פועלות מול לפרויקט Firebase המתאים.כמו כן, אפשר שיוך של כמה פרויקטים של Firebase (למשל פרויקט Staging ופרויקט ייצור) עם אותו פרויקט
בסוף האתחול, מערכת Firebase יוצרת באופן אוטומטי את שני הסוגים הבאים ברמה הבסיסית (root) של ספריית האפליקציות המקומית:
קובץ תצורה
firebase.json
שכולל רשימה את ההגדרות האישיות של הפרויקט.קובץ
.firebaserc
שמאחסן את הפרויקט כינויים.
הקובץ firebase.json
הפקודה firebase init
יוצרת
קובץ התצורה firebase.json
ברמה הבסיסית (root) של ספריית הפרויקט.
הקובץ firebase.json
נדרש כדי
לפרוס נכסים באמצעות ה-CLI Firebase כי הוא מציין
אילו קבצים והגדרות מספריית הפרויקט פרוסים
פרויקט Firebase. מכיוון שניתן לקבוע הגדרות מסוימות בפרויקט
למאגר או
במסוף Firebase, צריך להקפיד לפתור כל אפשרות
התנגשויות פריסה.
ניתן להגדיר את רוב Firebase Hosting האפשרויות
ישירות בקובץ firebase.json
. אבל במקרים אחרים,
שירותי Firebase שאפשר לפרוס באמצעות ה-CLI של Firebase,
הפקודה firebase init
יוצרת קבצים ספציפיים שבהם אפשר לקבוע הגדרות
לשירותים האלה, כמו קובץ index.js
עבור Cloud Functions. אפשר
בנוסף, צריך להגדיר הוקים (hooks) לפריסה או פריסה לאחר הפריסה בקובץ firebase.json
.
הדוגמה הבאה היא קובץ firebase.json
עם הגדרות ברירת מחדל, אם
צריך לבחור את Firebase Hosting, את Cloud Firestore ואת Cloud Functions for Firebase
(לאחר בחירת אפשרויות מקור ו-lint של 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
לשיוך של Cloud Firestore Security Rules
של קובצי המקור לאינדקס של מסד נתונים עם כל מסד נתונים. לשנות את הקובץ באמצעות
מערך 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
.
מריצים את הפקודה הבאה מהרמה הבסיסית (root) של ספריית הפרויקט המקומית, אם רוצים לבצע אחת מהמשימות הבאות:
- צפייה בתוכן הסטטי של האפליקציה שמתארחת ב-Firebase.
- השתמש ב-Cloud Functions כדי ליצור תוכן דינמי עבור Firebase Hosting ואתם רוצים להשתמש פונקציות HTTP בייצור (פריסה) כדי לאמולציה של Hosting בכתובת 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 Hosting
- Cloud Functions for Firebase חדש, מעודכן או קיים
- כללים ל-Firebase Realtime Database
- כללים ל-Cloud Storage for Firebase
- כללים לגבי Cloud Firestore
- מדדים עבור Cloud Firestore
כדי לפרוס בפרויקט Firebase, מריצים את הפקודה הבאה מהפרויקט ספרייה:
firebase deploy
אפשר גם להוסיף הערה לכל אחת מהפריסות. התגובה הזו יחד עם פרטי הפריסה האחרים של הפרויקט Firebase Hosting . לדוגמה:
firebase deploy -m "Deploying the best new feature ever."
כשמשתמשים בפקודה firebase deploy
, חשוב לשים לב לדברים הבאים:
כדי לפרוס משאבים מתיקיית פרויקט, צריך שתהיה בתיקיית הפרויקט קובץ
firebase.json
. הקובץ הזה הוא נוצר עבורך באופן אוטומטי על ידי הפקודהfirebase init
.כברירת מחדל, ב-
firebase deploy
נוצרת גרסה לכל המשאבים שניתנים לפריסה בספריית הפרויקט. כדי לפרוס שירותים או תכונות ספציפיים של Firebase: להשתמש בפריסה חלקית.
התנגשויות בפריסה של כללי אבטחה
של Firebase Realtime Database, Cloud Storage for Firebase ו-Cloud Firestore, אפשר להגדיר כללי אבטחה בספריית הפרויקטים המקומית או מסוף Firebase.
אפשרות נוספת למניעת התנגשויות בפריסה היא להשתמש בפריסה חלקית ולהגדיר כללים רק מסוף Firebase.
מכסות לפריסה
ייתכן (אם כי לא סביר) שתחרגו ממכסה שמגבילה
שיעור או נפח של פעולות הפריסה ב-Firebase. לדוגמה, כשפורסים מספר גדול מאוד של פונקציות, עשויה להופיע הודעת השגיאה HTTP 429 Quota
. כדי לפתור בעיות כאלה, אפשר לנסות
באמצעות פריסה חלקית.
החזרת פריסה למצב קודם
אפשר לבצע חזרה לאחור של פריסה של Firebase Hosting מדף Firebase Hosting של הפרויקט, על ידי בחירה בפעולה Rollback לגרסה הרצויה.
כרגע אי אפשר להחזיר גרסאות של כללי אבטחה Firebase Realtime Database, Cloud Storage for Firebase או Cloud Firestore.
פריסה של שירותים ספציפיים של Firebase
אם רוצים לפרוס רק תכונות או שירותים ספציפיים של Firebase, אפשר להשתמש
רשימה שמופרדת בפסיקים בדגל בפקודה firebase deploy
. לדוגמה,
הפקודה הבאה פורסת תוכן של Firebase Hosting
Cloud Storage כללי אבטחה.
firebase deploy --only hosting,storage
בטבלה הבאה מפורטים השירותים והתכונות הזמינים לרכישה חלקית.
בפריסה גמישה. השמות בדגלים תואמים למפתחות
קובץ תצורה של firebase.json
.
תחביר של סימון | שירות או תכונה פרוסים |
---|---|
--only hosting |
תוכן בFirebase Hosting |
--only database |
כללי Firebase Realtime Database |
--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/v1');
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/v1');
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 Hosting.
כדי להגדיר הוקים (hooks) לפריסה מראש או אחרי הפריסה, צריך להוסיף סקריפטים של bash
קובץ תצורה של firebase.json
. אפשר להגדיר
סקריפטים קצרים ישירות בקובץ firebase.json
, או שאפשר להפנות
הקבצים שנמצאים בספריית הפרויקט שלכם.
לדוגמה, הסקריפט הבא הוא הביטוי firebase.json
עבור
משימה אחרי הפריסה ששולחת הודעת Slack, אחרי שהפריסה בוצעה בהצלחה
Firebase Hosting.
"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
אפשר להגדיר הוקים של predeploy
ו-postdeploy
לכל אחד מהנכסים שאפשר לפרוס. הערה: הרצת הפקודה firebase deploy
מפעילה את כל המשימות לפני הפריסה ואחריה שהוגדרו
קובץ firebase.json
. כדי להריץ רק את המשימות שמשויכות לשירות Firebase ספציפי, משתמשים בפקודות פריסת חלקית.
גם ה-hooks של predeploy
וגם ה-hooks של postdeploy
מדפיסים בטרמינל את הפלט הסטנדרטי ואת הזרמים של השגיאות של הסקריפטים. במקרים של כשלים, חשוב לשים לב לנקודות הבאות:
- אם ה-hook של הפריסה מראש לא מסתיים כצפוי, הפריסה מבוטלת.
- אם הפריסה נכשלת מסיבה כלשהי, ה-hooks לאחר הפריסה לא יופעלו.
משתני סביבה
בסקריפטים שרצים בתוכן ההוק (hooks) לפריסה מראש ואחרי הפריסה: משתני סביבה זמינים:
$GCLOUD_PROJECT
: מזהה הפרויקט הפעיל$PROJECT_DIR
: תיקיית השורש שמכילה את הקובץfirebase.json
$RESOURCE_DIR
: (לסקריפטיםhosting
ו-functions
בלבד) מיקום הספרייה שמכילה את Hosting או Cloud Functions משאבים לפריסה
ניהול כמה מופעים של Realtime Database
לפרויקט Firebase יכול להיות מספר מופעים של Firebase Realtime Database. על ידי כברירת מחדל, פקודות 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 |
הוספת הגיבוב (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 ולבצע בו פעולות.
פקודה | תיאור |
---|---|
פריסה | פריסת קוד ונכסים מספריית הפרויקט לספריית הפרויקט
פרויקט. עבור Firebase Hosting, נדרש קובץ תצורה של firebase.json .
|
שירות | הפעלת שרת אינטרנט מקומי עם ההגדרות של Firebase Hosting.
עבור Firebase Hosting,
firebase.json
נדרש קובץ תצורה. |
פקודות App Distribution
פקודה | תיאור |
---|---|
appdistribution:distribution \ --app FIREBASE_APP_ID |
ה-build יהיה זמין לבודקים. |
appdistribution:testers:add | הוספת בודקים לפרויקט. |
app cookie:testers:remove | הסרת הבודקים מהפרויקט. |
פקודות App Hosting
פקודה | תיאור |
---|---|
apphosting:backends:create \ --פרויקט PROJECT_ID --מיקום REGION --app APP_ID |
יצירת אוסף של משאבים מנוהלים שמקושרים ל-codebase אחד שמרכיבים קצה עורפי של App Hosting. אופציונלי: אפשר לציין שם משתמש קיים אפליקציית האינטרנט של Firebase לפי המזהה שלה ב-Firebase. |
apphosting:backends:get \
BACKEND_ID --project PROJECT_ID --מיקום REGION |
אחזור פרטים ספציפיים, כולל כתובת ה-URL הציבורית, של קצה עורפי. |
apphosting:backends:list \ --project PROJECT_ID |
אחזור רשימה של כל הקצוות העורפיים הפעילים שמשויכים לפרויקט. |
Firebase apphosting:backends:delete \
BACKEND_ID --project PROJECT_ID --מיקום REGION |
מחיקת קצה עורפי מהפרויקט. |
apphosting:secrets:set \ KEY --פרויקט PROJECT_ID --מיקום REGION --data-file Data file |
אחסון חומרים סודיים ב-Secret Manager. אפשר גם לציין נתיב קובץ שממנו יקראו את הנתונים הסודיים. מגדירים את הערך _ כדי לקרוא נתונים סודיים מקלט רגיל.
|
apphosting:secrets:grantaccess \ KEY --project PROJECT_ID BACKEND_ID --location REGION |
מעניק לחשבון השירות לקצה העורפי גישה לסוד שסופק, כדי ש-App Hosting יוכל לגשת אליו בזמן ה-build או זמן הריצה. |
apphosting:secrets:describe \ KEY --project PROJECT_ID |
הפונקציה מקבלת את המטא-נתונים של סוד ואת הגרסאות שלו. |
firebase apphosting:secrets:access \ KEY[@version] --project PROJECT_ID |
ניגש לערך סוד בהתאם לסוד ולגרסה שלו. ברירת המחדל היא הגרסה העדכנית ביותר. |
פקודות Authentication (ניהול משתמשים)
פקודה | תיאור |
---|---|
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. |
פקודות Extensions
פקודה | תיאור |
---|---|
תוספים | מציג מידע על אופן השימוש בפקודות Firebase Extensions. רשימת המופעים של התוסף שמותקנים בפרויקט הפעיל. |
ext:Configure \ EXTENSION_INSTANCE_ID |
מגדיר מחדש את ערכי הפרמטרים של מופע של תוסף מניפסט של תוסף. |
ext:info \ PUBLISHER_ID/EXTENSION_ID |
מדפיסה מידע מפורט על תוסף. |
ext:install \ PUBLISHER_ID/EXTENSION_ID |
הוספת מכונה חדשה של תוסף למניפסט של התוסף. |
ext:list | רשימה של כל המופעים של התוספים שהותקנו בפרויקט Firebase. מדפיסה את מזהה המכונה של כל תוסף. |
ext:Uninstall \ EXTENSION_INSTANCE_ID |
הסרה של מופע של תוסף ממניפסט התוסף. |
ext:update \ EXTENSION_INSTANCE_ID |
לעדכן מופע של תוסף לגרסה האחרונה מניפסט של תוסף. |
ext:export | מייצאת את כל המופעים של התוספים המותקנים מהפרויקט אל מניפסט של תוסף. |
פקודות של בעלי תוכן דיגיטלי ב-Extensions
פקודה | תיאור |
---|---|
ext:dev:init | הפעלת Codebase שלד עבור תוסף חדש בגרסה הנוכחית |
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
פקודה | תיאור |
---|---|
hosting:disable |
הפסקת ההצגה של תנועת גולשים של Firebase Hosting עבור Firebase הפעיל פרויקט. בכתובת ה-URL של הפרויקט Hosting יוצג הכיתוב 'האתר לא נמצא' הודעה אחרי הרצת הפקודה הזו. |
ניהול של Hosting אתרים | |
firebase:sites:create \ SITE_ID |
יצירת אתר Hosting חדש בפרויקט Firebase הפעיל באמצעות
ציינת (אופציונלי) מציינים אפליקציית אינטרנט קיימת ב-Firebase לשיוך
עם האתר החדש, על ידי העברת הדגל הבא:
|
firebase:sites:delete \ SITE_ID |
מחיקת האתר שצוין ב-Hosting ה-CLI מציג בקשת אישור לפני מחיקת האתר. (אופציונלי) כדי לדלג על הודעת האישור, מעבירים את הדגלים הבאים: |
firebase:sites:get \ SITE_ID |
אחזור מידע על האתר שצוין ב-Hosting |
firebase:sites:list |
רשימה של כל Hosting האתרים של פרויקט Firebase הפעיל |
ניהול של ערוצים עם קטעי מקדים | |
firebase:channel:create \ CHANNEL_ID |
ייצור ערוץ תצוגה מקדימה חדש ב-
ברירת המחדל של האתר Hosting באמצעות המאפיינים שצוינו
הפקודה הזו לא נפרסת בערוץ. |
firebase:channel:delete \ CHANNEL_ID |
מחיקת הערוץ לתצוגה המקדימה שצוין אי אפשר למחוק ערוץ פעיל של אתר. |
firebase hosting:channel:deploy \ CHANNEL_ID |
פריסת התוכן וההגדרות של Hosting לפי ההגדרות שצוינו תצוגה מקדימה של הערוץ אם ערוץ התצוגה המקדימה עדיין לא קיים, הפקודה הזו יוצרת את הערוץ באתר ברירת המחדל Hosting לפני הפריסה בערוץ. |
firebase:channel:list | מפרט את כל הערוצים (כולל הערוץ ה"בשידור חי") ברירת מחדל אתר Hosting |
firebase:channel:open \ CHANNEL_ID |
פתיחת דפדפן לכתובת ה-URL של הערוץ שצוין או החזרת כתובת ה-URL אם לא ניתן לפתוח בדפדפן |
שכפול גרסאות | |
firebase:clone \ SOURCE_SITE_ID:SOURCE_CHANNEL_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
שכפול הגרסה האחרונה שנפרסה ב'מקור' שצוין ערוץ ל"יעד" שצוין ערוץ הפקודה הזו גם פורסת את הקוד בערוץ 'target' שצוין. אם "target" הערוץ עדיין לא קיים, הפקודה הזו יוצרת קובץ חדש תצוגה מקדימה של הערוץ ב"יעד" אתר אחד (Hosting) לפני פריסה אל את הערוץ. |
firebase:clone \ SOURCE_SITE_ID:@VERSION_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
הכלי יוצר עותק (clone) של הגרסה שצוינה בערוץ 'target' שצוין הפקודה הזו גם נפרסת ב-"target" שצוין . אם הערוץ 'target' עדיין לא קיים, הפקודה הזו יוצרת ערוץ תצוגה מקדימה חדש באתר Hosting של היעד לפני הפריסה בערוץ. אפשר למצוא את |
פקודות Realtime Database
שימו לב שאפשר ליצור את המכונה הראשונית של Realtime Database כברירת מחדל במסוף Firebase, או באמצעות תהליך העבודה הכללי של firebase init
או תהליך העבודה הספציפי של firebase init database
.
אחרי שיוצרים את המכונות, אפשר לנהל אותן כפי שמתואר במאמר ניהול מכונות Realtime Database מרובות.
פקודה | תיאור |
---|---|
database:get | מאחזר נתונים ממסד הנתונים של הפרויקט הפעיל ומציג אותם בתור JSON. ניתן לשלוח שאילתות לגבי נתונים שנוספו לאינדקס. |
database:instances:create | יצירת מכונת מסד נתונים עם שם מכונה ספציפי. מקבל
האפשרות --location ליצירת מסד נתונים
אזור. כדי לקרוא על שמות של אזורים שאפשר להשתמש בהם באפשרות הזו:
בוחרים מיקומים לפרויקט.
אם לא קיים מופע של מסד נתונים בפרויקט הנוכחי, תתבקשו
כדי להריץ את התהליך firebase init כדי ליצור מכונה.
|
database:instances:list | הצגת רשימה של כל מכונות מסדי הנתונים בפרויקט הזה. מקבל
אפשרות של --location להצגת מסדי נתונים בטווח שצוין
אזור. כדי לקרוא על שמות של אזורים שאפשר להשתמש בהם באפשרות הזו:
בוחרים מיקומים לפרויקט. |
database:profile | יוצר פרופיל של פעולות במסד הנתונים של הפרויקט הפעיל. למידע נוסף, ראו סוגי הפעולות של Realtime Database. |
database:push | דחיפה של נתונים חדשים לרשימה במיקום מסוים במסד הנתונים של הפרויקט הפעיל. מקבל קלט מקובץ, מ-STDIN או משורת פקודה ארגומנט. |
database:remove | מחיקת כל הנתונים במיקום ספציפי בפרויקט הפעיל מסד נתונים. |
database:set | מחליפה את כל הנתונים במיקום שצוין בפרויקט הפעיל מסד נתונים. הפונקציה מקבלת קלט מקובץ, מ-STDIN או מארגומנט בשורת הפקודה. |
database:update | מבצע עדכון חלקי במיקום שצוין במצב הפעיל מסד הנתונים של הפרויקט. מקבלת קלט מקובץ, מ-STDIN או מארגומנט של שורת הפקודה. |
פקודות Remote Config
פקודה | תיאור |
---|---|
remoteconfig:versions:list \ --limit NUMBER_OF_VERSIONS |
ליצירת רשימה של עשר הגרסאות האחרונות של התבנית. יש לפרט
0 כדי להחזיר את כל הגרסאות הקיימות, או אם רוצים.
להעביר את האפשרות --limit כדי להגביל את מספר
הגרסאות שהוחזרו. |
remoteconfig:get \ --v, version_number VERSION_NUMBER --o, output FILENAME |
מקבל את התבנית לפי גרסה (ברירת המחדל היא הגרסה האחרונה)
ומפיק פלט של קבוצות הפרמטרים, הפרמטרים ושמות התנאים
לטבלה. אפשר גם לכתוב את הפלט
קובץ שצוין עם -o, FILENAME . |
remoteconfig:rollback \ --v, version_number VERSION_NUMBER --force |
החזרת תבנית אחת (Remote Config) לגרסה קודמת שצוינה
מספר או ברירת המחדל של הגרסה הקודמת המיידית (גרסה נוכחית 1-). אם לא מעבירים את הערך --force , תוצג ההודעה Y/N
לפני שתמשיכו בחזרה לאחור. |