ينطبق ذلك على إصدار Cloud Firestore Enterprise فقط. |
توضّح هذه الصفحة كيفية إنشاء قواعد بيانات Cloud Firestore المتوافقة مع MongoDB وتعديلها وحذفها. يمكنك إنشاء قواعد بيانات Cloud Firestore متعددة لكل مشروع. يمكنك استخدام قواعد بيانات متعددة لإعداد بيئات الإنتاج والاختبار، وعزل بيانات العملاء، وتحديد المناطق الجغرافية للبيانات.
استخدام الفئة المجانية
تقدّم Cloud Firestore طبقة مجانية تتيح لك البدء بدون أي تكلفة.
تنطبق الطبقة المجانية على قاعدة بيانات Cloud Firestore واحدة فقط لكل مشروع. ستحصل قاعدة البيانات الأولى التي يتم إنشاؤها في مشروع بدون قاعدة بيانات ضمن الطبقة المجانية على الطبقة المجانية. إذا تم حذف قاعدة البيانات التي تم تطبيق الفئة المجانية عليها، ستتلقّى قاعدة البيانات التالية التي يتم إنشاؤها الفئة المجانية.
قبل البدء
يجب إكمال الخطوات التالية قبل إنشاء قاعدة بيانات:
-
إذا لم يسبق لك إنشاء مشروع على Firebase، يمكنك إنشاء مشروع باتّباع الخطوات التالية: في Firebaseوحدة التحكّم، انقر على إضافة مشروع، ثم اتّبِع التعليمات الظاهرة على الشاشة لإنشاء مشروع على Firebase أو لإضافة خدمات Firebase إلى مشروع Google Cloud حالي.
- منح أدوار مناسبة في "إدارة الهوية وإمكانية الوصول" كما هو موضَّح في القسم التالي
الأدوار المطلوبة
لإنشاء قواعد البيانات وإدارتها، يجب أن يكون لديك دور Owner
أو Datastore Owner
في خدمة "إدارة الهوية وإمكانية الوصول". تمنح هذه الأدوار الأذونات المطلوبة.
الأذونات المطلوبة
لإدارة قواعد البيانات، يجب أن تتوفر لك الأذونات التالية:
- إنشاء قاعدة بيانات:
datastore.databases.create
- قراءة إعدادات قاعدة البيانات:
datastore.databases.getMetadata
- ضبط قاعدة بيانات:
datastore.databases.update
- حذف قاعدة بيانات:
datastore.databases.delete
- استنساخ قاعدة بيانات:
datastore.databases.clone
إنشاء قاعدة بيانات
لإنشاء قاعدة بيانات متوافقة مع MongoDB في Cloud Firestore، استخدِم إحدى الطرق التالية:
Firebase وحدة التحكّم
-
في وحدة تحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.
- انقر على إنشاء قاعدة بيانات.
- اختَر إصدار Enterprise. انقر على التالي.
- أدخِل معرّف قاعدة البيانات.
- اختَر موقعًا جغرافيًا لقاعدة البيانات.
- اضبط قاعدة البيانات حيث يمكنك اختيار وضع.
- انقر على إنشاء.
Firebase CLI
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
gcloud CLI
استخدِم الأمر
gcloud firestore databases create
واضبط --edition=enterprise
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
استبدِل ما يلي:
- DATABASE_ID: معرّف قاعدة بيانات صالح
- LOCATION: اسم منطقة أو منطقة متعدّدة متوافقة مع MongoDB في Cloud Firestore.
لتفعيل ميزة "الحماية من الحذف"، أضِف العلامة --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: اسم منطقة أو منطقة متعدّدة متوافقة مع MongoDB في Cloud Firestore.
- DELETE_PROTECTION_ENABLEMENT: إما
DELETE_PROTECTION_ENABLED
أوDELETE_PROTECTION_DISABLED
لتفعيل ميزة "الحماية من الحذف"، اضبط delete_protection_state
على DELETE_PROTECTION_ENABLED
.
لا يمكنك حذف قاعدة بيانات تم تفعيل ميزة الحماية من الحذف فيها
إلى أن توقف هذا الإعداد. هذا الإعداد معطل بشكل افتراضي.
رقم تعريف قاعدة البيانات
تشمل أرقام تعريف قواعد البيانات الصالحة أرقام التعريف التي تتوافق مع ما يلي:
- يتضمّن أحرفًا وأرقامًا وواصلة (
-
) فقط. - يجب أن تكون الأحرف صغيرة.
- يجب أن يكون الحرف الأول حرفًا.
- يجب أن يكون الحرف الأخير حرفًا أو رقمًا.
- يجب أن تتضمّن 4 أحرف على الأقل.
- الحدّ الأقصى 63 حرفًا.
- يجب ألا يكون معرّفًا فريدًا عالميًا (UUID) أو يشبهه. على سبيل المثال، لا تستخدِم معرّفًا مثل
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
إذا حذفت قاعدة بيانات، لا يمكنك إعادة استخدام معرّف قاعدة البيانات على الفور إلا بعد 5 دقائق.
حماية الحذف
استخدِم ميزة "الحماية من الحذف" لمنع حذف قاعدة بيانات عن طريق الخطأ. تعمل ميزة "الحماية من الحذف" بالطريقة التالية:
- لا يمكنك حذف قاعدة بيانات تم تفعيل ميزة الحماية من الحذف فيها إلا بعد إيقافها.
- تكون ميزة "الحماية من الحذف" غير مفعَّلة تلقائيًا.
- يمكنك تفعيل ميزة الحماية من الحذف عند إنشاء قاعدة البيانات، أو يمكنك تعديل إعدادات قاعدة البيانات لتفعيلها.
قائمة قواعد البيانات
استخدِم إحدى الطرق التالية لإدراج قواعد البيانات:
Firebase وحدة التحكّم
-
في وحدة تحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.
- انقر على Cloud Firestore لعرض جميع قواعد البيانات الخاصة بالمشروع.
gcloud CLI
استخدِم الأمر
gcloud firestore databases list
لعرض جميع قواعد البيانات في مشروعك.
gcloud firestore databases list
عرض تفاصيل قاعدة البيانات
لعرض تفاصيل حول قاعدة بيانات واحدة، استخدِم إحدى الطرق التالية:
Firebase وحدة التحكّم
-
في وحدة تحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.
- اختَر قاعدة بيانات من قائمة قواعد البيانات.
gcloud CLI
استخدِم الأمر gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
استبدِل DATABASE_ID بمعرّف قاعدة بيانات.
تعديل إعدادات قاعدة البيانات
لتعديل إعدادات قاعدة البيانات، استخدِم الأمر
gcloud firestore databases update
.
استخدِم هذا الأمر لتغيير ميزة الحماية من الحذف أو تفعيلها أو إيقافها.
تعديل إعدادات الحماية من الحذف
لتفعيل ميزة "الحماية من الحذف" في قاعدة بيانات، استخدِم الأمر
gcloud firestore databases update
مع العلامة --delete-protection
. على سبيل المثال:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection
استبدِل DATABASE_ID بمعرّف قاعدة بيانات.
لإيقاف ميزة "الحماية من الحذف" في قاعدة بيانات، استخدِم الأمر
gcloud firestore databases update
مع العلامة --no-delete-protection
. على سبيل المثال:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
استبدِل DATABASE_ID بمعرّف قاعدة بيانات.
حذف قاعدة بيانات
لحذف قاعدة بيانات، استخدِم وحدة التحكّم أو أداة سطر الأوامر. لا يؤدي حذف قاعدة بيانات إلى تكبّد رسوم مقابل عمليات الحذف.
إذا كان إعداد الحماية من الحذف مفعَّلاً في قاعدة البيانات، عليك أولاً إيقاف الحماية من الحذف.
Firebase وحدة التحكّم
-
في وحدة تحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.
- اختَر قاعدة البيانات التي تريد حذفها.
- انقر على عرض المزيد.
- انقر على حذف لحذف قاعدة البيانات.
gcloud CLI
استخدِم الأمر `gcloud firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
استبدِل DATABASE_ID بمعرّف قاعدة البيانات التي تريد حذفها.
استنساخ قاعدة بيانات
يمكنك استنساخ قاعدة بيانات حالية في طابع زمني محدّد إلى قاعدة بيانات جديدة باتّباع الخطوات التالية:
قاعدة البيانات المستنسَخة هي قاعدة بيانات جديدة سيتم إنشاؤها في الموقع الجغرافي نفسه لقاعدة البيانات المصدر.
لإنشاء نسخة طبق الأصل، تستخدم Cloud Firestore بيانات الاسترداد في نقطة زمنية محددة (PITR) لقاعدة البيانات المصدر. تتضمّن قاعدة البيانات المستنسَخة جميع البيانات والفهارس.
بشكلٍ تلقائي، سيتم تشفير قاعدة البيانات المستنسَخة بالطريقة نفسها التي يتم بها تشفير قاعدة البيانات المصدر، وذلك باستخدام التشفير التلقائي من Google أو تشفير CMEK. يمكنك تحديد نوع تشفير مختلف أو استخدام مفتاح مختلف لتشفير CMEK.
يتم تحديد الطابع الزمني بدقة تصل إلى دقيقة واحدة، ويشير إلى نقطة زمنية في الماضي، ضمن الفترة الزمنية المحدّدة من خلال فترة الاسترداد عند نقطة زمنية محددة:
- إذا كانت ميزة "استعادة البيانات إلى نقطة زمنية" مفعّلة لقاعدة البيانات، يمكنك اختيار أي دقيقة في آخر 7 أيام (أو أقل إذا تم تفعيل الميزة قبل أقل من 7 أيام).
- إذا لم تكن ميزة "الاستعادة إلى نقطة زمنية" مفعّلة، يمكنك اختيار أي دقيقة في الساعة الماضية.
- يمكنك الاطّلاع على الطابع الزمني الأقدم الذي يمكنك اختياره في وصف قاعدة البيانات.
وحدة التحكم
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
انقر على
عرض المزيد في صف الجدول الخاص بقاعدة البيانات التي تريد استنساخها. انقر على استنساخ. يظهر مربّع الحوار إنشاء نسخة طبق الأصل.في مربّع الحوار إنشاء نسخة طبق الأصل، أدخِل مَعلمات لإنشاء نسخة طبق الأصل من قاعدة البيانات:
في الحقل تحديد معرّف للنسخة المستنسخة، أدخِل معرّف قاعدة بيانات لقاعدة بيانات جديدة مستنسخة. يجب ألا يكون معرّف قاعدة البيانات هذا مرتبطًا بقاعدة بيانات حالية.
في حقل الاستنساخ من، اختَر نقطة زمنية لاستخدامها في الاستنساخ. يتوافق الوقت المحدّد مع طابع زمني لنقطة استعادة في الوقت المناسب، وذلك بدقة تصل إلى الدقيقة.
انقر على إنشاء نسخة طبق الأصل.
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: طابع زمني للاستعادة إلى نقطة زمنية بالتنسيق 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 التلقائي- استخدِم تشفير CMEK.
customer-managed-encryption
حدِّد رقم تعريف مفتاح في الوسيطة--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'
ضبط أذونات الوصول لكل قاعدة بيانات
يمكنك استخدام شروط إدارة الهوية وإمكانية الوصول لإعداد أذونات الوصول على مستوى كل قاعدة بيانات. تستخدِم الأمثلة التالية Google Cloud CLI لمنح إذن الوصول الشرطي إلى قاعدة بيانات واحدة أو أكثر. يمكنك أيضًا تحديد شروط إدارة الهوية وإمكانية الوصول في Google Cloud Console.
عرض سياسات إدارة الهوية وإمكانية الوصول الحالية
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