רלוונטי רק למהדורת Cloud Firestore Enterprise. |
בדף הזה מוסבר איך ליצור, לעדכן ולמחוק מסדי נתונים של Cloud Firestore עם תאימות ל-MongoDB. אפשר ליצור כמה מסדי נתונים Cloud Firestore לכל פרויקט. אתם יכולים להשתמש בכמה מסדי נתונים כדי להגדיר סביבות ייצור ובדיקה, לבודד נתוני לקוחות ולבצע לוקליזציה של נתונים.
שימוש בתוכנית ללא תשלום
Cloud Firestore מציעה רמת שימוש בחינם שמאפשרת לכם להתחיל לעבוד ללא עלות.
התוכנית החינמית חלה רק על מסד נתונים אחד Cloud Firestore לכל פרויקט. מסד הנתונים הראשון שנוצר בפרויקט ללא מסד נתונים ברמת שירות חינמית יקבל את רמת השירות החינמית. אם מסד הנתונים עם ההטבה של הרמה החינמית נמחק, מסד הנתונים הבא שייווצר יקבל את ההטבה של הרמה החינמית.
לפני שמתחילים
לפני שיוצרים מסד נתונים, צריך לבצע את הפעולות הבאות:
-
אם עדיין לא עשיתם זאת, אתם צריכים ליצור פרויקט ב-Firebase: בFirebaseמסוף, לוחצים על הוספת פרויקט ופועלים לפי ההוראות שמופיעות במסך כדי ליצור פרויקט ב-Firebase או כדי להוסיף שירותי Firebase לפרויקט Google Cloud קיים.
- מקצים תפקידים מתאימים בניהול הזהויות והרשאות הגישה (IAM) כמו שמתואר בקטע הבא.
התפקידים הנדרשים
כדי ליצור ולנהל מסדי נתונים, צריך תפקיד בניהול זהויות והרשאות גישה (IAM) עם ההרשאות Owner
או Datastore Owner
. התפקידים האלה מעניקים את ההרשאות הנדרשות.
ההרשאות הנדרשות
כדי לנהל מסדי נתונים, אתם צריכים את ההרשאות הבאות:
- יצירת מסד נתונים:
datastore.databases.create
- קריאת הגדרת מסד הנתונים:
datastore.databases.getMetadata
- הגדרת מסד נתונים:
datastore.databases.update
- כדי למחוק מסד נתונים:
datastore.databases.delete
- שכפול של מסד נתונים:
datastore.databases.clone
יצירת מסד נתונים
כדי ליצור מסד נתונים של Cloud Firestore עם תאימות ל-MongoDB, משתמשים באחת מהשיטות הבאות:
מסוף Firebase
-
במסוף Firebase, עוברים לדף Firestore Database.
- לוחצים על יצירת מסד נתונים.
- בוחרים באפשרות Enterprise edition (מהדורת Enterprise). לוחצים על Next.
- מזינים מזהה מסד נתונים.
- בוחרים מיקום למסד הנתונים.
- מגדירים את מסד הנתונים ובוחרים מצב.
- לוחצים על יצירה.
Firebase CLI
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
CLI של gcloud
משתמשים בפקודה gcloud firestore databases create
ומגדירים את --edition=enterprise
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_ID: מזהה מסד נתונים תקין.
- LOCATION: השם של Cloud Firestore עם תאימות ל-MongoDB באזור רב-אזורי או באזור.
כדי להפעיל הגנה מפני מחיקה, מוסיפים את הדגל --delete-protection
.
אי אפשר למחוק מסד נתונים שההגנה מפני מחיקה מופעלת בו עד שמשביתים את ההגדרה הזו. הגדרה זו מושבתת כברירת מחדל.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
כדי להוסיף תגים למסד הנתונים, משתמשים בדגל --tags
. לדוגמה:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
Terraform
משתמשים במשאב google_firestore_database
ומגדירים את database_edition
לערך ENTERPRISE
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_ID: מזהה מסד נתונים תקין.
- LOCATION: השם של Cloud Firestore עם תאימות ל-MongoDB באזור רב-אזורי או באזור.
- DELETE_PROTECTION_ENABLEMENT: אחת מהאפשרויות הבאות:
DELETE_PROTECTION_ENABLED
אוDELETE_PROTECTION_DISABLED
.
כדי להפעיל את ההגנה מפני מחיקה, מגדירים את delete_protection_state
לערך DELETE_PROTECTION_ENABLED
.
אי אפשר למחוק מסד נתונים שהופעלה בו הגנה מפני מחיקה
עד שמשביתים את ההגדרה הזו. הגדרה זו מושבתת כברירת מחדל.
מזהה מסד הנתונים
מזהי מסדי נתונים תקינים כוללים מזהים שעומדים בדרישות הבאות:
- כולל רק אותיות, מספרים ומקפים (
-
). - האותיות צריכות להיות קטנות.
- התו הראשון חייב להיות אות.
- התו האחרון חייב להיות אות או מספר.
- לפחות 4 תווים.
- 63 תווים לכל היותר.
- הערך לא יכול להיות UUID או להיראות כמו UUID. לדוגמה, אל תשתמשו במזהה כמו
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
אם מוחקים מסד נתונים, אי אפשר להשתמש שוב במזהה של מסד הנתונים באופן מיידי, אלא רק אחרי 5 דקות.
מחיקת ההגנה
כדי למנוע מחיקה של מסד נתונים בטעות, אפשר להשתמש בהגנה מפני מחיקה. הגנה מפני מחיקה פועלת באופן הבא:
- אי אפשר למחוק מסד נתונים שההגנה מפני מחיקה מופעלת בו עד שמבטלים את ההגנה מפני מחיקה.
- ההגנה מפני מחיקה מושבתת כברירת מחדל.
- אפשר להפעיל הגנה מפני מחיקה כשיוצרים את מסד הנתונים, או לעדכן את ההגדרה של מסד נתונים כדי להפעיל את ההגנה מפני מחיקה.
הצגת רשימה של מסדי נתונים
כדי להציג את רשימת מסדי הנתונים, משתמשים באחת מהשיטות הבאות:
מסוף Firebase
-
במסוף Firebase, עוברים לדף Firestore Database.
- לוחצים על Cloud Firestore כדי לראות את כל מסדי הנתונים של הפרויקט.
CLI של gcloud
משתמשים בפקודה gcloud firestore databases list
כדי להציג את כל מסדי הנתונים בפרויקט.
gcloud firestore databases list
צפייה בפרטי מסד הנתונים
כדי לראות פרטים על מסד נתונים יחיד, משתמשים באחת מהשיטות הבאות:
מסוף Firebase
-
במסוף Firebase, עוברים לדף Firestore Database.
- בוחרים מסד נתונים מתוך רשימת מסדי הנתונים.
CLI של gcloud
משתמשים בפקודה gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
מחליפים את DATABASE_ID במזהה מסד הנתונים.
עדכון ההגדרה של מסד הנתונים
כדי לעדכן את הגדרות התצורה של מסד נתונים, משתמשים בפקודה gcloud firestore databases update
.
אפשר להשתמש בפקודה הזו כדי לשנות את ההגנה מפני מחיקה, להפעיל אותה או להשבית אותה.
עדכון הגדרת ההגנה מפני מחיקה
כדי להפעיל הגנה מפני מחיקה במסד נתונים, משתמשים בפקודה gcloud firestore databases update
עם הדגל --delete-protection
. לדוגמה:
CLI של gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
מחליפים את DATABASE_ID במזהה מסד הנתונים.
כדי להשבית את ההגנה מפני מחיקה במסד נתונים, משתמשים בפקודה gcloud firestore databases update
עם הדגל --no-delete-protection
. לדוגמה:
CLI של gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
מחליפים את DATABASE_ID במזהה מסד הנתונים.
מחיקה של מסד נתונים
כדי למחוק מסד נתונים, משתמשים במסוף או בכלי שורת הפקודה. מחיקת מסד נתונים לא כרוכה בחיוב על פעולות מחיקה.
אם ההגדרה 'הגנה מפני מחיקה' מופעלת במסד הנתונים, צריך קודם להשבית את ההגנה מפני מחיקה.
מסוף Firebase
-
במסוף Firebase, עוברים לדף Firestore Database.
- בוחרים את מסד הנתונים שרוצים למחוק.
- לוחצים על הצגת פרטים נוספים.
- לוחצים על מחיקה כדי למחוק את מסד הנתונים.
CLI של gcloud
משתמשים בפקודה gcloud firestore databases delete.
gcloud firestore databases delete --database=DATABASE_ID
מחליפים את DATABASE_ID במזהה של מסד הנתונים שרוצים למחוק.
שכפול מסד נתונים
אתם יכולים לשכפל מסד נתונים קיים בנקודת זמן נבחרת למסד נתונים חדש:
מסד הנתונים המשוכפל הוא מסד נתונים חדש שייווצר באותו מיקום כמו מסד הנתונים המקורי.
כדי ליצור שיבוט, Cloud Firestore משתמש בנתוני שחזור לנקודת זמן מסוימת (PITR) של מסד הנתונים המקורי. מסד הנתונים המשוכפל כולל את כל הנתונים והאינדקסים.
כברירת מחדל, מסד הנתונים המשוכפל יוצפן באותו אופן שבו מוצפן מסד הנתונים המקורי, באמצעות ההצפנה שמוגדרת כברירת מחדל ב-Google או באמצעות הצפנת CMEK. אפשר לציין סוג הצפנה אחר או להשתמש במפתח אחר להצפנת CMEK.
חותמת הזמן היא ברמת גרנולריות של דקה אחת ומציינת נקודת זמן בעבר, בתקופה שמוגדרת על ידי חלון ה-PITR:
- אם PITR מופעל במסד הנתונים, אפשר לבחור כל דקה ב-7 הימים האחרונים (או פחות, אם PITR הופעל לפני פחות מ-7 ימים).
- אם PITR לא מופעל, אפשר לבחור כל דקה בשעה האחרונה.
- אפשר לבדוק את חותמת הזמן המוקדמת ביותר שאפשר לבחור בתיאור של מסד הנתונים.
המסוף
נכנסים לדף Databases במסוף Google Cloud.
לוחצים על
View more בשורה של מסד הנתונים שרוצים לשכפל. לוחצים על Clone (שיבוט). מופיעה תיבת הדו-שיח יצירת שיבוט.בתיבת הדו-שיח Create a clone (יצירת שיבוט), מציינים פרמטרים לשיבוט של מסד הנתונים:
בשדה Give the clone an ID (הקצאת מזהה לשיבוט), מזינים מזהה מסד נתונים למסד נתונים משובט חדש. המזהה של מסד הנתונים לא יכול להיות משויך למסד נתונים קיים.
בשדה Clone from, בוחרים נקודת זמן לשיבוט. הזמן שנבחר תואם לחותמת זמן של PITR, ברמת דיוק של דקה.
לוחצים על יצירת שיבוט.
gcloud
משתמשים בפקודה gcloud alpha firestore databases clone
כדי לשכפל מסד נתונים:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
מחליפים את מה שכתוב בשדות הבאים:
SOURCE_DATABASE: שם מסד הנתונים של מסד נתונים קיים שרוצים לשכפל. השם הוא בפורמט
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID
.PITR_TIMESTAMP: חותמת זמן של PITR בפורמט RFC 3339, ברמת דיוק של דקה. לדוגמה:
2025-06-01T10:20:00.00Z
או2025-06-01T10:30:00.00-07:00
.DESTINATION_DATABASE_ID: מזהה מסד נתונים של מסד נתונים חדש ששוכפל. המזהה של מסד הנתונים לא יכול להיות משויך למסד נתונים קיים.
דוגמה:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'
שינוי תצורת ההצפנה של מסד הנתונים המשוכפל
כברירת מחדל, למסד הנתונים המשוכפל תהיה אותה הגדרת הצפנה כמו למסד הנתונים המקורי. כדי לשנות את הגדרות ההצפנה, משתמשים בארגומנט --encryption-type
:
- (ברירת מחדל)
use-source-encryption
: שימוש באותה הגדרת הצפנה כמו במסד הנתונים של המקור. -
google-default-encryption
: שימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. -
customer-managed-encryption
: שימוש בהצפנת CMEK. מציינים מזהה מפתח בארגומנט--kms-key-name
.
בדוגמה הבאה מוצג איך להגדיר הצפנה באמצעות CMEK עבור מסד הנתונים המשוכפל:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
הגדרת הרשאות גישה לכל מסד נתונים
אתם יכולים להשתמש בתנאים לניהול זהויות והרשאות גישה (IAM) כדי להגדיר הרשאות גישה ברמת מסד הנתונים. בדוגמאות הבאות נעשה שימוש ב-Google Cloud CLI כדי להקצות גישה מותנית למסד נתונים אחד או יותר. אפשר גם להגדיר תנאי IAM במסוף Google Cloud.
צפייה במדיניות IAM קיימת
gcloud projects get-iam-policy PROJECT_ID
מגדירים את PROJECT_ID
למזהה הפרויקט.
הענקת גישה למסד נתונים
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
מגדירים את הפרטים הבאים:
-
PROJECT_ID
: מזהה הפרויקט EMAIL
: כתובת אימייל שמייצגת חשבון ספציפי. לדוגמה,alice@example.com
.-
DATABASE_ID
: מזהה מסד נתונים. -
TITLE
: כותרת אופציונלית לביטוי. -
DESCRIPTION
: תיאור אופציונלי של הביטוי.
הענקת גישה לכל מסדי הנתונים חוץ מאחד
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
מגדירים את הפרטים הבאים:
-
PROJECT_ID
: מזהה הפרויקט EMAIL
: כתובת אימייל שמייצגת חשבון ספציפי. לדוגמה,alice@example.com
.-
DATABASE_ID
: מזהה מסד נתונים. -
TITLE
: כותרת אופציונלית לביטוי. -
DESCRIPTION
: תיאור אופציונלי של הביטוי.
הסרת מדיניות עבור משתמש ותפקיד מסוימים
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
מגדירים את הפרטים הבאים:
-
PROJECT_ID
: מזהה הפרויקט EMAIL
: כתובת אימייל שמייצגת חשבון ספציפי. לדוגמה,alice@example.com
.
מגבלות
אפשר להגדיר עד 100 מסדי נתונים לכל פרויקט. אפשר לפנות לתמיכה כדי לבקש להגדיל את המגבלה הזו.
המאמרים הבאים
- מריצים את המדריך למתחילים: יצירת מסד נתונים והתחברות אליו.
- מידע נוסף על הבדלים בהתנהגות
- Cloud Monitoringמידע על מדדים של Cloud Firestore עם תאימות ל-MongoDB