בדף הזה מוסבר איך ליצור, לעדכן ולמחוק מסדי נתונים של Cloud Firestore. אפשר ליצור כמה מסדי נתונים של Cloud Firestore לכל פרויקט. תוכלו להשתמש במספר מסדי נתונים כדי להגדיר סביבות ייצור ובדיקה, לבודד את נתוני הלקוחות ולהגדיר אזורים גיאוגרפיים של נתונים.
מסד הנתונים (default)
אם לא נדרשים לאפליקציה כמה מסדי נתונים, אפשר להשתמש במסד הנתונים (default)
.
אם לא מציינים מסד נתונים, ספריות הלקוח של Cloud Firestore ו-Google Cloud CLI מתחברים למסד הנתונים (default)
כברירת מחדל.
(default)
.
התפקידים הנדרשים
כדי ליצור ולנהל מסדי נתונים, צריך את התפקיד Owner
או Datastore Owner
ב-Identity and Access Management (ניהול זהויות והרשאות גישה). התפקידים האלה מעניקים את ההרשאות הנדרשות.
ההרשאות הנדרשות
כדי לנהל מסדי נתונים, נדרשות ההרשאות הבאות:
- יצירת מסד נתונים:
datastore.databases.create
- קריאת ההגדרה של מסד הנתונים:
datastore.databases.getMetadata
- הגדרת מסד נתונים:
datastore.databases.update
- מחיקה של מסד נתונים:
datastore.databases.delete
יצירת מסד נתונים
כדי ליצור מסד נתונים, משתמשים באחת מהשיטות הבאות:
המסוף
-
נכנסים לדף Firestore Database במסוף Firebase.
- אם זוהי מסד הנתונים הראשון עם שם, לוחצים על Add database (הוספת מסד נתונים).
- אחרת, לוחצים על (ברירת מחדל) ואז על הוספת מסד נתונים.
- מגדירים את מסד הנתונים. מזינים מזהה מסד נתונים. בחר במיקום. לוחצים על Create Database.
gcloud
משתמשים בפקודה gcloud firestore databases create
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_ID: מזהה מסד נתונים תקין.
- LOCATION: השם של Cloud Firestore באזור אחד או במספר אזורים.
- DATABASE_TYPE: הערך
firestore-native
למצב Native או הערךdatastore-mode
למצב Datastore.
--delete-protection
הוא דגל אופציונלי להפעלת הגנה מפני מחיקה.
לא ניתן למחוק מסד נתונים עם הגנה מפני מחיקה עד להשבתת ההגדרה הזו. הגדרה זו מושבתת כברירת מחדל.
Firebase CLI
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_ID: מזהה מסד נתונים תקין.
- LOCATION: השם של Cloud Firestore באזור אחד או במספר אזורים.
- DELETE_PROTECTION_ENABLEMENT: הערך יכול להיות
ENABLED
אוDISABLED
.
מסד הנתונים שנוצר הוא תמיד במצב Native של Firestore.
--delete-protection
הוא ארגומנט אופציונלי להפעלת ההגנה מפני מחיקה. לא ניתן למחוק מסד נתונים עם הגנה מפני מחיקה מופעלת עד להשבתת ההגדרה הזו. ההגדרה הזו
מושבתת כברירת מחדל.
Terraform
resource "google_firestore_database" "database" { project = "project-id" name = DATABASE_ID location_id = LOCATION type = DATABASE_TYPE // Optional delete_protection_state = DELETE_PROTECTION_STATE }
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_ID: מזהה מסד נתונים תקין.
- LOCATION: השם של Cloud Firestore באזור אחד או במספר אזורים.
- DATABASE_TYPE: הערך
FIRESTORE_NATIVE
למצב Native או הערךDATASTORE_MODE
למצב Datastore. - DELETE_PROTECTION_ENABLEMENT: הערך
DELETE_PROTECTION_ENABLED
אוDELETE_PROTECTION_DISABLED
.
delete_protection_state
הוא ארגומנט אופציונלי להפעלת הגנה מפני מחיקה. לא ניתן למחוק מסד נתונים עם הגנה מפני מחיקה מופעלת, עד להשבתת ההגדרה הזו. הגדרה זו מושבתת כברירת מחדל.
מזהה מסד הנתונים
המזהים התקינים של מסד הנתונים כוללים את (default)
ומזהים שעומדים בדרישות הבאות:
- כולל רק אותיות, מספרים ומקפים (
-
). - האותיות חייבות להיות קטנות.
- התו הראשון חייב להיות אות.
- התו האחרון חייב להיות אות או מספר.
- 4 תווים לפחות.
- 63 תווים לכל היותר.
- המזהה לא יכול להיות ייחודי אוניברסלי (UUID) או להיות דומה למזהה ייחודי אוניברסלי (UUID). לדוגמה, אל תשתמשו במזהה כמו
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
אם מוחקים מסד נתונים, לא ניתן להשתמש שוב במזהה מסד הנתונים מיד עד לאחר 5 דקות.
מחיקת הגנה
להשתמש בהגנה מפני מחיקה כדי למנוע מחיקה של מסד נתונים בטעות. אי אפשר למחוק מסד נתונים שמופעלת בו הגנת מחיקה, עד שמשביתים את ההגנה מפני מחיקה. כברירת מחדל, ההגנה מפני מחיקה מושבתת. אפשר להפעיל את הגנה מפני מחיקה כשיוצרים את מסד הנתונים, או לעדכן את הגדרת מסד הנתונים כדי להפעיל את ההגנה.
הגדרת Cloud Firestore Security Rules למסדי הנתונים שלך
משתמשים ב-CLI של Firebase כדי לפרוס את Cloud Firestore Security Rules בכל אחת ממסדי הנתונים. אפשר לעיין במדריך לניהול ולפריסה של Cloud Firestore Security Rules.
גישה למסד נתונים בעל שם באמצעות ספריית לקוח
מסד נתונים בעל שם כולל כל מסד נתונים שאינו בשם (default)
. כברירת מחדל, ערכות ה-SDK של Firebase וספריות הלקוח של Google API מתחברים למסד הנתונים (default)
Cloud Firestore בפרויקט. כדי ליצור לקוח שמחובר למסד נתונים בעל שם, מגדירים את מזהה מסד הנתונים כשיוצרים את מופע הלקוח.
הצגת רשימה של מסדי נתונים
אפשר להשתמש באחת מהשיטות הבאות כדי לקבל רשימה של מסדי הנתונים:
המסוף
נכנסים לדף Databases במסוף Google Cloud.
gcloud
משתמשים בפקודה gcloud firestore databases list
כדי להציג את רשימת כל מסדי הנתונים בפרויקט.
gcloud firestore databases list
Firebase CLI
משתמשים בפקודה firebase firestore:databases:list
כדי להציג את רשימת כל מסדי הנתונים בפרויקט.
firebase firestore:databases:list
הצגת פרטי מסד הנתונים
כדי להציג פרטים על מסד נתונים יחיד, משתמשים באחת מהשיטות הבאות:
gcloud
משתמשים בפקודה gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Firebase CLI
משתמשים בפקודה firebase firestore:databases:get
:
firebase firestore:databases:get DATABASE_ID
מחליפים את DATABASE_ID במזהה מסד נתונים.
עדכון ההגדרה של מסד הנתונים
כדי לעדכן את הגדרות התצורה של מסד נתונים, משתמשים בפקודה gcloud firestore databases update
.
משתמשים בפקודה הזו כדי להפעיל או להשבית את ההגנה מפני מחיקה.
עדכון ההגדרה של הגנה מפני מחיקה
כדי להפעיל הגנה מפני מחיקה במסד נתונים, משתמשים בפקודה gcloud firestore databases update
עם הדגל --delete-protection
. לדוגמה:
gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
מחליפים את DATABASE_ID במזהה מסד נתונים.
כדי להשבית את ההגנה מפני מחיקה במסד נתונים, משתמשים בפקודה gcloud firestore databases update
עם הדגל --no-delete-protection
. לדוגמה:
gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
מחליפים את DATABASE_ID במזהה מסד נתונים.
מחיקה של מסד נתונים
כדי למחוק מסד נתונים, משתמשים במסוף או בכלי שורת הפקודה.
אם ההגדרה 'הגנה מפני מחיקה' מופעלת במסד הנתונים, צריך קודם להשבית את ההגנה מפני מחיקה.
אם מסד הנתונים מכיל נתוני חיפוש של App Engine או ישויות blob, צריך למחוק קודם את הנתונים האלה.
מחיקת מסד נתונים לא מובילה למחיקה אוטומטית של טריגרים של Eventarc עבור מסד הנתונים הזה. הטריגר יפסיק לשלוח אירועים, אבל הוא ימשיך להתקיים עד שתמחקו אותו.
המסוף
-
נכנסים לדף Firestore Database במסוף Firebase.
- בכרטיסייה 'נתונים', מעל לתצוגה של טבלת הנתונים של מסד הנתונים, לוחצים על ובוחרים באפשרות Delete מסד נתונים.
- פועלים לפי ההוראות כדי למחוק את מסד הנתונים.
gcloud
משתמשים בפקודה gcloud firestore databases delete.
gcloud firestore databases delete --database=DATABASE_ID
מחליפים את DATABASE_ID במזהה של מסד הנתונים שרוצים למחוק.
הגדרת הרשאות גישה לכל מסד נתונים
אפשר להשתמש בתנאים של ניהול זהויות והרשאות גישה כדי להגדיר הרשאות גישה ברמת מסד הנתונים. בדוגמאות הבאות נעשה שימוש ב-CLI של Google Cloud כדי להקצות גישה מותנית למסד נתונים אחד או יותר. אפשר גם להגדיר תנאים של 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
: כתובת אימייל שמייצגת חשבון Google ספציפי. לדוגמה,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
: כתובת אימייל שמייצגת חשבון Google ספציפי. לדוגמה,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
: כתובת אימייל שמייצגת חשבון Google ספציפי. לדוגמה,alice@example.com
.
Cloud Monitoring
המדדים של Cloud Firestore מדווחים בשני משאבים במעקב.
כדי לבדוק מדדים מצטברים ברמת מסד הנתונים, אפשר לעיין ב-firestore.googleapis.com/Database
. המדדים שמדווחים במסגרת firestore_instance
נצברים ברמת הפרויקט.
מגבלות
- אתם יכולים ליצור עד 100 מסדי נתונים לכל פרויקט. אפשר לפנות לתמיכה ולבקש להגדיל את המגבלה.
- לא ניתן למחוק את מסד הנתונים
(default)
אם הוא מכיל נתוני חיפוש ב-GAE. כדי למחוק את נתוני החיפוש ב-GAE, צריך להשתמש ב-index delete api. אם מחקתם לאחרונה נתוני חיפוש מ-GAE, יכול להיות שתצטרכו להמתין לפני שתוכלו למחוק את מסד הנתונים. - אי אפשר למחוק את מסד הנתונים
(default)
אם הוא מכיל ישויות blob. כדי למחוק נתונים מ-Blobstore, צריך להשתמש ב-Blobstore delete api. כדי לבדוק אם במסד הנתונים(default)
יש נתוני Blobstore, מריצים את השאילתה הבאה של GQL במסוף Google Cloud:SELECT * FROM __BlobInfo__
. - אי אפשר להשתמש מחדש במזהה של מסד נתונים עד 5 דקות אחרי המחיקה.
- ב-Cloud Functions v1 אין תמיכה במסדי נתונים מוגדרים מראש ב-Firestore. צריך להשתמש בטריגרים של Cloud Firestore (דור שני) כדי להגדיר אירועים למסדי נתונים עם שם.
- טריגרי פונקציות של Firestore v1 וטריגרי אירועים של Firestore עשויים להפסיק לפעול אחרי שמוחקים את מסד הנתונים, גם אם יוצרים מסד נתונים חדש באותו שם.