توضّح هذه الصفحة كيفية إنشاء قواعد بيانات Cloud Firestore وتعديلها وحذفها. يمكنك إنشاء قواعد بيانات 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
إنشاء قاعدة بيانات
لإنشاء قاعدة بيانات Cloud Firestore، استخدِم إحدى الطرق التالية:
وحدة تحكُّم Firebase
-
في وحدة تحكُّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.
- انقر على إضافة قاعدة بيانات.
- اختَر إصدار Enterprise. انقر على التالي.
- اختَر Firestore with MongoDB compatibility.
- أدخِل معرّف قاعدة بيانات.
- اختَر موقعًا جغرافيًا لقاعدة بياناتك.
- انقر على إنشاء.
Firebase CLI
firebase firestore:databases:create --edition enterprise DATABASE_ID \n--location=LOCATION \n[--firestore-data-access FIRESTORE_ACCESS] \n[--mongodb-compatible-data-access MONGODB_ACCESS] \n[--realtime-updates REALTIME_UPDATES]
غيِّر القيم في السلسلة على الشكل التالي:
- DATABASE_ID: معرّف قاعدة بيانات صالح
- LOCATION: اسم Cloud Firestore منطقة متعددة أو منطقة.
- FIRESTORE_ACCESS: إما
ENABLEDأوDISABLED. القيمة التلقائية هيENABLED. - MONGODB_ACCESS: إما
ENABLEDأوDISABLED. القيمة التلقائية هيDISABLED. - REALTIME_UPDATES: إما
ENABLEDأوDISABLED. يتم ضبط القيمة التلقائية علىENABLEDفي حال تفعيلfirestore-data-access.
gcloud CLI
استخدِم الأمر
gcloud firestore databases create
واضبط --edition=enterprise.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --enable-mongodb-compatible-data-access
غيِّر القيم في السلسلة على الشكل التالي:
- DATABASE_ID: معرّف قاعدة بيانات صالح
- LOCATION: اسم منطقة متعددة أو منطقة في 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: اسم منطقة متعددة أو منطقة في 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.
يحتوي الطابع الزمني على دقة تبلغ دقيقة واحدة ويحدّد نقطة زمنية في الماضي، في الفترة المحدّدة من خلال نافذة الاستعادة في نقطة زمنية معيّنة:
- إذا كانت ميزة PITR مفعَّلة لقاعدة بياناتك، يمكنك اختيار أي دقيقة في آخر 7 أيام (أو أقل إذا تم تفعيل ميزة PITR قبل أقل من 7 أيام).
- إذا لم تكن ميزة PITR مفعَّلة، يمكنك اختيار أي دقيقة في الساعة السابقة.
- يمكنك الاطّلاع على أقدم طابع زمني يمكنك اختياره في وصف قاعدة بياناتك.
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
انقر على عرض المزيد في صف الجدول لقاعدة البيانات التي تريد استنساخها. انقر على استنساخ. يظهر مربّع الحوار إنشاء نسخة طبق الأصل.
في مربّع الحوار إنشاء نسخة طبق الأصل، أدخِل مَعلمات استنساخ قاعدة البيانات:
في حقل منح النسخة معرّفًا، أدخِل معرّف قاعدة بيانات لقاعدة بيانات جديدة منسوخة. يجب ألا يكون معرّف قاعدة البيانات هذا مرتبطًا بقاعدة بيانات حالية.
في حقل الاستنساخ من، اختَر نقطة زمنية لاستخدامها في الاستنساخ. يتوافق الوقت المحدّد مع طابع زمني للاستعادة في نقطة زمنية معيّنة، على مستوى الدقيقة.
انقر على إنشاء نسخة طبق الأصل.
gcloud
استخدِم الأمر
gcloud firestore databases clone
لنسخ قاعدة بيانات:
gcloud 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:00DESTINATION_DATABASE_ID: معرّف قاعدة بيانات لقاعدة بيانات جديدة تم استنساخها يجب ألا يكون معرّف قاعدة البيانات هذا مرتبطًا بقاعدة بيانات حالية.
مثال:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'
إذا أردت الربط ببعض العلامات أثناء استنساخ قاعدة بيانات، استخدِم الأمر السابق مع العلامة --tags، وهي قائمة اختيارية من أزواج KEY=VALUE للعلامات التي تريد ربطها.
مثال:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--tags=key1=value1,key2=value2
بشكل تلقائي، ستحتوي قاعدة البيانات المستنسخة على إعدادات التشفير نفسها
التي تتضمّنها قاعدة البيانات المصدر. لتغيير إعدادات التشفير، استخدِم الوسيطة
--encryption-type:
- (تلقائي)
use-source-encryption: استخدام إعدادات التشفير نفسها المستخدَمة في قاعدة البيانات المصدر -
google-default-encryption: استخدام تشفير Google التلقائي -
customer-managed-encryption: استخدام تشفير CMEK حدِّد رقم تعريف مفتاح في الوسيطة--kms-key-name.
يوضّح المثال التالي كيفية ضبط تشفير CMEK لقاعدة البيانات المستنسَخة:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='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.
عرض سياسات "إدارة الهوية وإمكانية الوصول" الحالية
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"