إدارة قواعد البيانات

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

قاعدة بيانات "(default)"

إذا كان تطبيقك لا يتطلّب قواعد بيانات متعدّدة، استخدِم قاعدة بيانات (default).

إذا لم تحدّد قاعدة بيانات، سيتم استخدام مكتبات عملاء Cloud Firestore. ويتصل واجهة سطر الأوامر في Google Cloud بقاعدة بيانات (default) تلقائيًا.

يمكنك استخدام الحصة المجانية مع قاعدة بيانات (default) فقط.

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

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

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

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

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

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

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

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

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

  2. إذا كانت هذه هي أوّل قاعدة بيانات مُسمّاة، انقر على إضافة قاعدة بيانات.
  3. بخلاف ذلك، انقر على (تلقائي)، ثم على إضافة قاعدة بيانات.
  4. اضبط قاعدة البيانات. أدخِل معرِّف قاعدة بيانات. حدد موقعًا. انقر على إنشاء قاعدة بيانات.
gcloud

يمكنك استخدام gcloud firestore databases create الأمر.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

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

--delete-protection هي علامة اختيارية لتفعيل الحماية من الحذف. لا يمكنك حذف قاعدة بيانات تم تفعيل حماية الحذف فيها إلا بعد وتعطيل هذا الإعداد. هذا الإعداد معطل بشكل افتراضي.

Firebase CLI
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

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

--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
}

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

delete_protection_state هي وسيطة اختيارية لتفعيل الحذف. حماية البيانات. لا يمكنك حذف قاعدة بيانات مفعَّل فيها خيار "الحماية من الحذف" إلى أن توقف هذا الخيار. هذا الإعداد معطل بشكل افتراضي.

معرِّف قاعدة البيانات

تتضمن أرقام تعريف قاعدة البيانات الصالحة (default) وأرقام التعريف التي تتوافق مع التالي:

  • يشتمل هذا الخيار على أحرف وأرقام وواصلات (-) فقط.
  • يجب أن تكون الأحرف صغيرة.
  • يجب أن يكون الحرف الأول حرفًا.
  • يجب أن يكون الحرف الأخير حرفًا أو رقمًا.
  • 4 أحرف كحد أدنى
  • 63 حرفًا كحدّ أقصى
  • يجب ألا يكون معرّف المستخدم الفريد (UUID) أو يشبه المعرّف الفريد العالمي (UUID). على سبيل المثال، لا تستخدم معرفًا مثل f47ac10b-58cc-0372-8567-0e02b2c3d479

في حال حذف قاعدة بيانات، لا يمكنك إعادة استخدام رقم تعريف قاعدة البيانات على الفور إلا بعد 5 دقائق.

حذف الحماية

يمكنك استخدام حماية الحذف لمنع الحذف غير المقصود لقاعدة البيانات. لا يمكنك حذف قاعدة بيانات مفعَّل فيها خيار "الحماية من الحذف" إلى أن توقف هذا الخيار. تكون ميزة حماية الحذف غير مُفعَّلة تلقائيًا. يمكنك تفعيل حذف الحماية عند إنشاء قاعدة البيانات أو تحديث تهيئة قاعدة بيانات إلى تفعيل حماية الحذف.

إعداد Cloud Firestore Security Rules لقواعد بياناتك

استخدام واجهة سطر الأوامر Firebase لنشر Cloud Firestore Security Rules في كل من لقواعد البيانات. راجِع دليل إدارة Cloud Firestore Security Rules ونشره.

الوصول إلى قاعدة بيانات مُسَمّاة باستخدام مكتبة عملاء

تتضمن قاعدة البيانات المُعنونة أي قاعدة بيانات لا تحمل اسم (default). بشكل افتراضي، يتم ربط حِزم تطوير البرامج (SDK) لمنصة Firebase و"مكتبات برامج Google API" بـ (default). قاعدة البيانات Cloud Firestore في مشروع. لإنشاء عميل مرتبط إلى قاعدة بيانات ذات اسم، يمكنك ضبط معرّف قاعدة البيانات عند إنشاء مثيل لعميل.

سرد قواعد البيانات

استخدم إحدى الطرق التالية لإدراج قواعد البيانات:

وحدة التحكم

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

الانتقال إلى Databases (قواعد البيانات)

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 بيانات بحث أو عناصر مجموعات البيانات، يجب حذف هذه البيانات أولاً.

لا يؤدي حذف قاعدة بيانات إلى حذف أي قاعدة تلقائيًا Eventarc مشغلات لقاعدة البيانات هذه. تشير رسالة الأشكال البيانية توقف عرض الأحداث ولكنها تستمر في التواجد حتى حذف العامل المشغِّل.

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

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

  2. في علامة التبويب "Data" (البيانات)، أعلى عرض جدول البيانات لقاعدة البيانات، انقر فوق ، ثم اختَر حذف قاعدة البيانات.
  3. اتّبِع التعليمات لحذف قاعدة البيانات.
gcloud

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

gcloud firestore databases delete --database=DATABASE_ID

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

ضبط أذونات الوصول لكل قاعدة بيانات

يمكنك استخدام شروط إدارة الهوية وإمكانية الوصول لضبط أذونات الوصول على مستوى كل قاعدة بيانات. تستخدم الأمثلة التالية واجهة سطر الأوامر في Google Cloud لتخصيص الوصول المشروط إلى قاعدة بيانات واحدة أو أكثر. يمكنك أيضًا تحديد شروط إدارة الهوية وإمكانية الوصول في 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: عنوان بريد إلكتروني يمثّل حسابًا معيّنًا على 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 على مستوى المشروع.

القيود

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