توضّح هذه الصفحة كيفية إنشاء قواعد بيانات Cloud Firestore وتعديلها وحذفها. يمكنك إنشاء قواعد بيانات متعدّدة على Cloud Firestore لكل مشروع. يمكنك استخدام قواعد بيانات متعدّدة لإعداد بيئات الإنتاج والاختبار، وعزل بيانات العملاء، وتحديد موقع البيانات جغرافيًا.
استخدام الفئة المجانية
Cloud Firestore توفّر فئة مجانية تتيح لك البدء بدون أي تكلفة.
تنطبق الفئة المجانية على قاعدة بيانات واحدة فقط على Cloud Firestore لكل مشروع. ستحصل قاعدة البيانات الأولى التي يتم إنشاؤها في مشروع بدون قاعدة بيانات ضمن الفئة المجانية على الفئة المجانية. إذا تم حذف قاعدة البيانات التي تم تطبيق الفئة المجانية عليها، ستحصل قاعدة البيانات التالية التي يتم إنشاؤها على الفئة المجانية.
قبل البدء
عليك إكمال ما يلي قبل إنشاء قاعدة بيانات:
-
إذا لم يسبق لك ذلك، أنشئ مشروعًا على Firebase: في الـ Firebase console، انقر على إضافة مشروع، ثم اتّبِع التعليمات الظاهرة على الشاشة لإنشاء مشروع على 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 مع التوافق مع MongoDB.
- أدخِل رقم تعريف قاعدة بيانات.
- اختَر موقعًا جغرافيًا لقاعدة بياناتك.
- انقر على إنشاء.
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 \ --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 أو يشبه رقم تعريف 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، انتقِل إلى صفحة قواعد البيانات.
انقر على عرض المزيد في صف الجدول لقاعدة البيانات التي تريد استنساخها. انقر على استنساخ. يظهر مربّع الحوار إنشاء نسخة طبق الأصل.
في مربّع الحوار إنشاء نسخة طبق الأصل ، قدِّم مَعلمات لاستنساخ قاعدة البيانات:
في حقل منح رقم تعريف للنسخة طبق الأصل ، أدخِل رقم تعريف قاعدة بيانات لإنشاء قاعدة بيانات جديدة مستنسَخة. يجب ألا يكون رقم تعريف قاعدة البيانات هذا مرتبطًا بقاعدة بيانات حالية.
في حقل الاستنساخ من ، اختَر نقطة زمنية لاستخدامها في الاستنساخ. يتطابق الوقت الذي تم اختياره مع طابع زمني للاسترداد في نقطة زمنية معيّنة، بدقة تصل إلى دقيقة واحدة.
انقر على إنشاء نسخة طبق الأصل.
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: طابع زمني للاسترداد في نقطة زمنية معيّنة بتنسيق 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.comDATABASE_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.comDATABASE_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.