מדריך לפקודות של Firebase CLI ל-Data Connect

ה-CLI של Firebase הוא כלי שמאפשר לנהל ולהגדיר מוצרים ושירותים של Firebase דרך שורת הפקודה.

ב-CLI יש פקודות שאפשר להשתמש בהן כדי לבצע מגוון משימות ב-Data Connect, כמו יצירת פרויקט Data Connect חדש, איפוס של ספריית עבודה מקומית תואמת, הגדרת המהדר של Data Connect, הצגת רשימה של משאבי Data Connect, יצירת ערכות SDK ללקוח ועוד.

הגדרת פקודות

הוספת Data Connect לפרויקט Firebase

firebase init

משתמשים ב-firebase init כדי להגדיר הגדרות פרויקט מקומיות חדשות. תהליך העבודה הזה יוצר או מעדכן קובצי תצורה של Firebase ב- של הספרייה.

firebase init

בתהליך firebase init מוסבר איך מגדירים שירות ומסד נתונים, ואם רוצים, גם איך מתקינים את האמולטור Data Connect ומגדירים את ערכות ה-SDK שנוצרו.

הגדרת השירות ומסד הנתונים

אם בוחרים את dataconnect להגדרת המוצר, ב-CLI תוצג בקשה השם והמיקום של השירות, ואם לקשר אותו או קיים Cloud SQL עבור מכונת PostgreSQL או יוצרים מכונה חדשה.

אם יש קישור למכונה קיימת, ה-CLI בודק הגדרות תואמות, כמו כאימות IAM וכתובות IP ציבוריות.

הגדרה של Local Emulator Suite

בתהליך ב-CLI מוצעת הגדרה של אמולטורים, כולל אמולטור Data Connect.

פקודות של אמולטור Data Connect

הפעלת האמולטור של Data Connect

emulators:start/exec

firebase emulators:start/exec

צריך להשתמש בגרסה Local Emulator Suite של האמולטור Data Connect במצב אינטראקטיבי עם start או במצב מבוסס סקריפט ולא אינטראקטיבי עם exec

פקודות לניהול סכימות ומחברים

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

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

פריסת משאבים של סכימה ומחבר

לפרוס

firebase deploy

הפקודה הזו פורסת משאבים לשירותי Data Connect שנוספו לאינדקס בקובץ firebase.json. העברה של סכימה מתבצעת לפי הצורך.

פקודה תיאור

פריסה ב-Firebase

דגל תיאור

–-only dataconnect

פריסה של סכימות ומחברים בכל שירותי Data Connect לצורך הפעולה הזו אבל לא לפרוס משאבי מוצר אחרים של Firebase.

–-only dataconnect:serviceId

פריסת סכימה ומחברים לשירות Data Connect שצוין.

–-only dataconnect:serviceId:connectorId

פריסת מחבר יחיד לשירות Data Connect שצוין.

‎–-only dataconnect:serviceId:schema

פורסים את הסכימה לשירות Data Connect שצוין.

עם הדגלים –-only, אפשר להעביר ערכים מופרדים בפסיקים כדי לפרוס של המשאבים הרצויים.

firebase deploy --only dataconnect:service1:schema,dataconnect:service2

הצגת רשימה של שירותים, סכימות ומחברים של Data Connect

dataconnect:services:list

firebase dataconnect:services:list

הפקודה הזו מדפיסה מידע בסיסי על השירותים, הסכימות והמחברים פרוסות בפרויקט.

השוואה והעברה של סכימות SQL

dataconnect:sql:diff

firebase dataconnect:sql:diff

הפקודה משווה בין הסכימה המקומית של שירות לסכימה הנוכחית של מסד הנתונים התואם של Cloud SQL. הפקודות יודפסו כדי להעביר את מסד הנתונים לסכימה החדשה.

פקודה תיאור

firebase dataconnect:sql:diff

דגל/פרמטר תיאור

serviceId

מציינים את השירות. אם לא צוין, הדפס את diff לכל השירותים ב-firebase.json.

dataconnect:sql:migrate

firebase dataconnect:sql:migrate

הפקודה הזו מחילה שינויים בסכימה המקומית על מסד הנתונים של Cloud SQL בשירות.

כשמגדירים פרויקט Data Connect מקומי חדש, עם ברירת המחדל קובץ dataconnect.yaml, ההתנהגות של הפקודה dataconect:sql:migrate הוא לבקש ממך לבצע שינויים נדרשים, ולאחר מכן לבקש לפני ביצוע השינויים. כדי לשנות את ההתנהגות הזו כך שתמיד תכלול שינויים אופציונליים או תתעלם מהם, צריך לעדכן את ההגדרה של dataconnect.yaml, כפי שמתואר במאמר העברת סכימות במצב קפדני או תואם.

בסביבות אינטראקטיביות, ה-CLI מציג כל משפט SQL של ההעברה (ואם הוא הרסני) ומבקש את השינויים שרוצים להחיל. העברת הדגל --force שווה ערך לאישור כל ההנחיות.

בסביבות לא אינטראקטיביות:

  • ללא --force, יבוצעו רק שינויים לא מזיקים. אם יש שינויים הרסניים, ה-CLI יבוטל ללא ביצוע שינויים.
  • עם --force, כל השינויים מתבצעים. אם הרשימה כוללת שינויים הרסניים, הם יודפסו ותופיע בקשה להמשיך, אלא אם הוצג הדגל --force.
פקודה תיאור

firebase dataconnect:sql:migrate

סימון תיאור

serviceId

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

–-כוח

אישור אוטומטי של הנחיות.

בדומה לדגלים אחרים של --only, אפשר לציין כמה שירותים ולהפריד ביניהם בפסיקים.

העברת סכימה במצב מחמיר או במצב תואם

ל-Data Connect העברות של סכימה יש שני אימותי סכימה שונים מצבים: מחמיר ותואמים. כדי לאמת מצב מחמיר, נדרשת של מסד הנתונים להתאים בדיוק לסכימת האפליקציה לפני היישום שאפשר לפרוס אותו. כדי לבצע אימות במצב תואם, סכימת מסד הנתונים צריכה להיות תואמת לסכימת האפליקציה. כלומר, רכיבים במסד הנתונים שלא משמשים את סכימה האפליקציה לא משתנים.

המצבים והשיטות המומלצות האלה לאימות סכימה להעברת סכימות הם במדריך לניהול הסכימה והמחברים

מצב האימות מוגדר באמצעות המפתח schemaValidation בקובץ dataconnect.yaml. אם לא מציינים את הערך של schemaValidation, ה-CLI מחיל שינויים תואמים ומציג הודעה לפני ביצוע שינויים מחמירים. צפייה חומר העזר בנושא הגדרות אישיות.

פקודות SDK

יצירת ערכות SDK

dataconnect:SDK:יצירה

firebase dataconnect:sdk:generate

הפקודה הזו יוצרת את ערכות ה-SDK המוקלדות שהוצהרו ב-connector.yaml.

מומלץ לעיין גם במדריכים לעבודה עם ערכות ה-SDK לאינטרנט. ערכות ה-SDK של Android וערכות ה-SDK ל-iOS.

Command תיאור

firebase dataconnect:sdk:generate

דגל תיאור

–-watch

התהליך ימשיך לפעול ויצירת ערכות SDK חדשות בכל פעם ששומרים שינויים בקובצי ה-GQL של הסכימה והמחבר.

אם הגנרציה תיכשל, השגיאות יודפסו ב-stdout, הקוד שנוצר לא ישתנה, והפקודה תמשיך לפעול.

–-only connectorId:platform

יצירת ערכות SDK רק לפלטפורמה אחת ולמחבר אחד.

באמצעות הדגלים –only אפשר להעביר ערכים המופרדים בפסיקים.

firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin

פקודות ניהול ב-Cloud SQL

הקצאת תפקידי SQL ל-Cloud SQL

dataconnect:sql:grant

firebase dataconnect:sql:grant

הפקודה הזו מעניקה תפקיד משתמש ב-PostgreSQL למשתמש או לחשבון השירות שצוינו:

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

firebase dataconnect:sql:grant

סימון/פרמטר תיאור

-R, --role role

תפקיד ה-SQL שרוצים להקצות, מתוך: owner,‏ writer או reader.

-E,‏ --email email_address

כתובת האימייל של המשתמש או חשבון השירות שאליו רוצים להקצות את התפקיד.

אפשרויות כלליות

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

  • --json מעביר את פלט ה-CLI ל-JSON כדי לנתח אותו באמצעות כלים אחרים.
  • --noninteractive ו---interactive מבטלים, לפי הצורך, באופן אוטומטי זיהוי של סביבות שאינן TTS.