Firebase CLI Firebase מאפשר לכם לנהל את פרויקטי Firebase בספריית פרויקטים מקומית שאפשר לשלוט בגרסאות שלה. ההרשאה הזו כוללת Data Connectשירותים בפרויקטים, מחברים לשירותים האלה ומשאבים כמו סכימה, שאילתה ומקורות מוטציה לכל מחבר. בנוסף, ה-CLI מאפשר להתקין ולהפעיל את האמולטור Firebase Data Connect. ממשק ה-CLI הוא חלופה יעילה לעבודה במסוף Firebase.
הוראות להתקנת הניסוי של Firebase CLI לתוכנית Private Preview ופקודות CLI שקשורות ל-Data Connect זמינות במאמר בנושא CLI.
במדריך הזה מוסבר על:
- רשומות ספציפיות ל-Data Connect בקובץ התצורה של פרויקט
firebase.json
. - הגדרות Data Connect ב-
dataconnect.yaml
וב-connector.yaml
. - תפקידי IAM שצריך להגדיר בפרויקטים שמשתמשים ב-Data Connect.
קבצי הגדרות של פרויקט Firebase
חומר עזר בנושא קובץ התצורה firebase.json
משתמשים במפתחות dataconnect
כדי להגדיר שירות אחד או יותר Data Connect בפרויקט.
dataconnect: {
source: string // Path to the directory containing the dataconnect.yaml service file.
}
הפניה להגדרות של dataconnect.yaml
בקובץ dataconnect.yaml
נשמרים פרטי ההגדרה של המיקומים של מקורות סכימת האפליקציה, מקורות המחברים ופרטי החיבור של מקור הנתונים. הקובץ משמש גם כסימן לספריית פרויקט ב-CLI של Firebase.
המקש schemaValidation
קובע את רמת אימות הסכימה שמבוצעת כשמעבירים סכימות במהלך הפריסה. אם לא מוגדר ערך, הפעולה של הפקודה dataconect:sql:migrate
היא להחיל שינויים תואמים ולבקש אישור לפני ביצוע שינויים מחמירים. כשההגדרה מופעלת, מתרחשים הדברים הבאים:
STRICT
מצב. סכימת מסד הנתונים צריכה להיות זהה לסכימת האפליקציה לפני שאפשר לפרוס את סכימת האפליקציה. כל הטבלאות או העמודות שלא נעשה בהן שימוש בסכימה Data Connect יימחקו מהמסד.COMPATIBLE
מצב. הסכימה של מסד הנתונים צריכה להיות תואמת לסכימת האפליקציה לפני שאפשר לפרוס את סכימת האפליקציה. כל שינוי נוסף נחשב לאופציונלי. תואם פירושו שהעברות של סכימות מבוססות על סכימת האפליקציה שאתם כותבים. רכיבים במסד הנתונים שלא נמצאים בסכימת האפליקציה לא ישתנו. לכן, אחרי הפריסה, יכול להיות שהקצה העורפי יכיל סכימות, טבלאות ועמודות שלא נעשה בהן שימוש.
הסברים על הערכים של מפתחות אחרים בקובץ הזה מופיעים בתגובות שבהמשך.
# The top-level Firebase Data Connect YAML file.
# The Firebase Data Connect API version to target.
# Optional. Defaults to the latest version.
specVersion: string
# The ID of the Firebase Data Connect service resource.
# Required.
serviceId: string
# The location of the Firebase Data Connect service.
# Required.
location: string
# Required.
schema:
# Relative path to directory for schema definitions.
# Recursively loads all .gql files in this directory.
# Optional. If not present, defaults to ./schema.
source: string
# Datasource connection information.
# Required.
datasource:
# Required.
postgresql:
# The name of the PostgreSQL database.
# Required.
database: string
cloudSql:
# The ID of the CloudSQL instance resource.
# Required.
instanceId: string
# Schema validation mode for schema migrations.
# Defaults to unspecified/commented out, meaning you are prompted to
# review all changes during migration.
# If desired, uncomment and indicate one of "STRICT" or "COMPATIBLE".
schemaValidation: string
# Required.
# Relative paths to directories for connector definitions.
# Recursively loads all .gql files in the listed directories.
# All directories specified MUST contain a connector.yaml file.
connectorDirs: [string]
קובץ ה-YAML מניח מבנה תיקיות שמוגדר כברירת מחדל (אבל ניתן להגדרה):
./(project root)
/dataconnect
dataconnect.yaml
/schema
*.gql
/connector
connector.yaml
*.gql
הפניה להגדרות של connector.yaml
משתמשים ב-connector.yaml
כדי להגדיר את מצב האימות שמוגדר כברירת מחדל ואת האפשרויות ליצירת SDK.
# The connector-level YAML file.
# Required. The connector name of the Firebase Data Connect connector resource.
connectorId: string
# Optional. If not specified, no generated libraries (i.e. type-safe SDKs) will be generated.
generate:
# Optional.
javascriptSdk:
# Path to the directory that will be updated with the latest generated
# web SDK.
# Required.
- outputDir: string
# Path to your package.json directory. If specified, the new generated sdk will be installed in this path.
# Optional. If not provided, the package will not be auto-installed for you.
- packageJsonDir: string
# Name of the package to be created.
# Optional. Defaults to @firebasegen/<connectorID>
- package: string
<option>: string
# Optional.
swiftSdk:
# Path to the directory that will be updated with the latest generated
# iOS Swift SDK.
# Required.
- outputDir: string
# Name of the package to be created.
- package: string
<option>: string
# Optional.
kotlinSdk:
# Path to the directory that will be updated with the latest generated
# Android SDK.
# Required.
- outputDir: string
# Name of the package to be created.
- package: string
<option>: string
הגדרת IAM בפרויקטים של Data Connect
תפקידי IAM עם הרשאות גרנולריות ל-Data Connect
תפקידים בסיסיים ותפקידים מוגדרים מראש ב-Firebase ממופים לתפקידים ברמה נמוכה יותר ב-Data Connect. בטבלה מפורט המיפוי.
כדי לנהל הקצאות של תפקידי IAM ספציפיים עבור Data Connect ברמה מפורטת יותר, משתמשים במסוף Google Cloud.
תפקיד IAM | הרשאות |
---|---|
firebasedataconnect.googleapis.com/admin אדמין של Firebase Data Connect API התפקיד הזה כולל את הצופה ב-Firebase Data Connect API. היא שוות ערך ל- firebasedataconnect.* .ההרשאה הזו ניתנת בתפקידים Cloud Owner, Cloud Editor, Firebase Admin ו-Firebase Develop Admin. |
גישה מלאה למשאבי Firebase Data Connect API, כולל נתונים.firebasedataconnect.googleapis.com/operations.delete firebasedataconnect.googleapis.com/operations.cancel firebasedataconnect.googleapis.com/services.create firebasedataconnect.googleapis.com/services.update firebasedataconnect.googleapis.com/services.delete firebasedataconnect.googleapis.com/services.executeGraphql firebasedataconnect.googleapis.com/services.executeGraphqlRead firebasedataconnect.googleapis.com/schemas.create firebasedataconnect.googleapis.com/schemas.update firebasedataconnect.googleapis.com/schemas.delete firebasedataconnect.googleapis.com/schemaRevisions.create firebasedataconnect.googleapis.com/schemaRevisions.delete firebasedataconnect.googleapis.com/connectors.create firebasedataconnect.googleapis.com/connectors.update firebasedataconnect.googleapis.com/connectors.delete firebasedataconnect.googleapis.com/connectorRevisions.create firebasedataconnect.googleapis.com/connectorRevisions.delete
|
firebasedataconnect.googleapis.com/viewer Firebase Data Connect API Viewer ההרשאה הזו ניתנת על ידי התפקידים Cloud Owner, Cloud Editor, Cloud Viewer, Firebase Admin, Firebase Viewer, Firebase Develop Admin ו-Firebase Develop Viewer. |
גישה לקריאה בלבד למשאבי Firebase Data Connect API. התפקיד לא מעניק גישה לנתונים.cloudresourcemanager.googleapis.com/projects.list cloudresourcemanager.googleapis.com/projects.get firebasedataconnect.googleapis.com/operations.list firebasedataconnect.googleapis.com/operations.get firebasedataconnect.googleapis.com/locations.list firebasedataconnect.googleapis.com/locations.get firebasedataconnect.googleapis.com/services.list firebasedataconnect.googleapis.com/services.get firebasedataconnect.googleapis.com/schemas.list firebasedataconnect.googleapis.com/schemas.get firebasedataconnect.googleapis.com/schemaRevisions.list firebasedataconnect.googleapis.com/schemaRevisions.get firebasedataconnect.googleapis.com/connectors.list firebasedataconnect.googleapis.com/connectors.get firebasedataconnect.googleapis.com/connectorRevisions.list firebasedataconnect.googleapis.com/connectorRevisions.get
|
firebasedataconnect.googleapis.com/dataAdmin firebasedataconnect.googleapis.com/dataAdmin אדמין של נתונים ב-Firebase Data Connect API
firebasedataconnect.googleapis.com/dataAdmin
ההרשאה הזו ניתנת על ידי התפקידים Cloud Owner, Cloud Editor,firebasedataconnect.googleapis.com/dataAdmin
Firebase Admin ו-Firebase Develop Admin. |
גישת קריאה וכתיבה מלאה למקורות נתונים.firebasedataconnect.googleapis.com/services.executeGraphql firebasedataconnect.googleapis.com/services.executeGraphqlRead
|
firebasedataconnect.googleapis.com/dataViewer כלי להצגת נתונים של Firebase Data Connect API firebasedataconnect.googleapis.com/dataViewer
הכלי הזה זמין למשתמשים עם התפקידים הבאים: בעלים ב-Cloud, עורך ב-Cloud, מנהל מערכת ב-Firebase ומנהל פיתוח ב-Firebase. |
הרשאת קריאה בלבד למקורות נתונים.firebasedataconnect.googleapis.com/services.executeGraphqlRead
|