إنشاء قواعد البيانات وإدارتها

توضّح هذه الصفحة كيفية إنشاء قواعد بيانات Cloud Firestore وتعديلها وحذفها. يمكنك إنشاء قواعد بيانات متعدّدة على Cloud Firestore لكل مشروع. يمكنك استخدام قواعد بيانات متعدّدة لإعداد بيئات الإنتاج والاختبار، وعزل بيانات العملاء، وتحديد الموقع الجغرافي للبيانات.

استخدام الفئة المجانية

Cloud Firestore تقدّم فئة مجانية تتيح لك البدء بدون أي تكلفة.

تنطبق الفئة المجانية على قاعدة بيانات واحدة فقط على Cloud Firestore لكل مشروع. ستحصل أول قاعدة بيانات يتم إنشاؤها في مشروع بدون قاعدة بيانات ضمن الفئة المجانية على الفئة المجانية. إذا تم حذف قاعدة البيانات التي تم تطبيق الفئة المجانية عليها، ستتلقّى قاعدة البيانات التالية التي يتم إنشاؤها الفئة المجانية.

قبل البدء

عليك إكمال ما يلي قبل إنشاء قاعدة بيانات:

  1. إذا لم يسبق لك ذلك، أنشئ مشروعًا على Firebase: في Firebase وحدة التحكّم، انقر على إضافة مشروع، ثم اتّبِع التعليمات الظاهرة على الشاشة لإنشاء مشروع على Firebase أو لإضافة خدمات Firebase إلى مشروع حالي Google Cloud.

  2. امنح أدوار إدارة الهوية وإمكانية الوصول المناسبة كما هو موضّح في القسم التالي.

الأدوار المطلوبة

لإنشاء قواعد البيانات وإدارتها، تحتاج إلى Owner أو Datastore Owner دور إدارة الهوية وإمكانية الوصول. تمنح هذه الأدوار الأذونات المطلوبة.

الأذونات المطلوبة

لإدارة قواعد البيانات، تحتاج إلى الأذونات التالية:

  • إنشاء قاعدة بيانات: datastore.databases.create
  • قراءة إعدادات قاعدة البيانات: datastore.databases.getMetadata
  • ضبط قاعدة بيانات: datastore.databases.update
  • حذف قاعدة بيانات: datastore.databases.delete
  • استنساخ قاعدة بيانات: datastore.databases.clone

إنشاء قاعدة بيانات

لإنشاء قاعدة بيانات Cloud Firestore، استخدِم إحدى الطرق التالية:

Firebase وحدة تحكم
  1. في وحدة تحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.

    الانتقال إلى "قاعدة بيانات Firestore"

  2. انقر على إضافة قاعدة بيانات.
  3. اختَر إصدار Enterprise. انقر على التالي.
  4. اختَر Firestore مع التوافق مع MongoDB.
  5. أدخِل رقم تعريف قاعدة البيانات.
  6. اختَر موقعًا جغرافيًا لقاعدة بياناتك.
  7. انقر على إنشاء.
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

استبدِل ما يلي:

لتفعيل ميزة "الحماية من الحذف"، أضِف العلامة --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 وحدة تحكم
  1. في وحدة تحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.

    الانتقال إلى "قاعدة بيانات Firestore"

  2. انقر على Cloud Firestore لعرض جميع قواعد البيانات للمشروع.
gcloud CLI

استخدِم الأمر gcloud firestore databases list لسرد جميع قواعد البيانات في مشروعك.

gcloud firestore databases list

عرض تفاصيل قاعدة البيانات

لعرض تفاصيل حول قاعدة بيانات واحدة، استخدِم إحدى الطرق التالية:

Firebase وحدة تحكم
  1. في وحدة تحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.

    الانتقال إلى "قاعدة بيانات Firestore"

  2. اختَر قاعدة بيانات من قائمة قواعد البيانات.
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 وحدة تحكم
  1. في وحدة تحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.

    الانتقال إلى "قاعدة بيانات Firestore"

  2. اختَر قاعدة البيانات التي تريد حذفها.
  3. انقر على عرض المزيد.
  4. انقر على حذف لحذف قاعدة البيانات.
gcloud CLI

استخدِم الـ `gcloud firestore databases delete` أمر.

gcloud firestore databases delete --database=DATABASE_ID

استبدِل DATABASE_ID برقم تعريف قاعدة البيانات التي تريد حذفها.

استنساخ قاعدة بيانات

يمكنك استنساخ قاعدة بيانات حالية في قاعدة بيانات جديدة في طابع زمني محدّد:

وحدة التحكم

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.

    الانتقال إلى "قواعد البيانات"

  2. انقر على عرض المزيد في صف الجدول لقاعدة البيانات التي تريد استنساخها. انقر على استنساخ. يظهر مربّع الحوار إنشاء نسخة طبق الأصل.

  3. في مربّع الحوار إنشاء نسخة طبق الأصل ، قدِّم مَعلمات لاستنساخ قاعدة البيانات:

    1. في حقل منح رقم تعريف للنسخة طبق الأصل ، أدخِل رقم تعريف قاعدة بيانات لإنشاء قاعدة بيانات جديدة مستنسَخة. يجب ألا يكون رقم تعريف قاعدة البيانات هذا مرتبطًا بقاعدة بيانات حالية.

    2. في حقل الاستنساخ من ، اختَر نقطة زمنية لاستخدامها في الاستنساخ. يتطابق الوقت المحدّد مع طابع زمني للاسترداد في نقطة زمنية معيّنة، بدقة دقيقة واحدة.

  4. انقر على إنشاء نسخة طبق الأصل.

gcloud

استخدِم الأمر gcloud firestore databases clone لاستنساخ قاعدة بيانات:

gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_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 قاعدة بيانات كحد أقصى لكل مشروع. يمكنك التواصل مع فريق الدعم لطلب زيادة هذا الحد.

الخطوات التالية