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

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

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

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

إذا لم تحدد قاعدة بيانات، فستتصل مكتبات عملاء Cloud Firestore وGoogle Cloud CLI بقاعدة البيانات (default) بشكل افتراضي.

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

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

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

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

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

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

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

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

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

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

  2. انقر فوق إنشاء قاعدة بيانات .
  3. حدد وضع قاعدة البيانات. انقر فوق متابعة
  4. تكوين قاعدة البيانات الخاصة بك. أدخل معرف قاعدة البيانات. اختر موقعا. انقر فوق إنشاء قاعدة بيانات .
com.gcloud

استخدم أمر gcloud alpha firestore databases create .

gcloud alpha 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 لقواعد بياناتك

استخدم Firebase CLI لنشر قواعد أمان Cloud Firestore لكل قاعدة من قواعد البيانات الخاصة بك. راجع دليل إدارة ونشر قواعد أمان Cloud Firestore .

الوصول إلى قاعدة البيانات المسماة مع مكتبة العميل

تتضمن قاعدة البيانات المسماة أي قاعدة بيانات غير مسماة (default) . افتراضيًا، تتصل حزم Firebase SDK ومكتبات عميل Google API بقاعدة بيانات Cloud Firestore (default) في المشروع. لإنشاء عميل متصل بقاعدة بيانات مسماة، قم بتعيين معرف قاعدة البيانات عند إنشاء مثيل للعميل.

قائمة قواعد البيانات

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

وحدة التحكم

في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

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

com.gcloud

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

gcloud firestore databases list

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

لعرض تفاصيل حول قاعدة بيانات واحدة، استخدم أمر gcloud firestore databases describe :

com.gcloud
gcloud firestore databases describe --database=DATABASE_ID

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

تحديث تكوين قاعدة البيانات

لتحديث إعدادات التكوين لقاعدة بيانات، استخدم أمر gcloud alpha firestore databases update . استخدم هذا الأمر للتغيير لتمكين أو تعطيل حماية الحذف.

قم بتحديث إعداد حماية الحذف

لتمكين حماية الحذف في قاعدة بيانات، استخدم أمر gcloud alpha firestore databases update مع علامة --delete-protection . على سبيل المثال:

com.gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection

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

لتعطيل حماية الحذف في قاعدة بيانات، استخدم أمر gcloud alpha firestore databases update مع علامة --no-delete-protection . على سبيل المثال:

com.gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection

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

حذف قاعدة بيانات

لحذف قاعدة بيانات، استخدم وحدة التحكم أو أداة سطر الأوامر.

إذا تم تمكين إعداد حماية الحذف في قاعدة البيانات، فيجب عليك أولاً تعطيل حماية الحذف .

إذا كانت قاعدة البيانات تحتوي على بيانات بحث App Engine أو كيانات كبيرة الحجم ، فيجب عليك حذف تلك البيانات أولاً.

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

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

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

  2. انقر فوق عرض المزيد في صف الجدول لقاعدة البيانات التي ترغب في حذفها. انقر فوق حذف . يظهر مربع حوار.
  3. في قاعدة البيانات حذف؟ في مربع الحوار، قم بتأكيد الحذف عن طريق كتابة معرف قاعدة البيانات في حقل النص. انقر فوق حذف . تعلمك وحدة التحكم بنجاح العملية أو فشلها.

    إذا فشلت العملية، فاعرض تفاصيل قاعدة البيانات وتأكد من تعطيل الحماية ضد الحذف. لتعطيل الحماية من الحذف، راجع تحديث إعداد الحماية من الحذف .

com.gcloud

استخدم الأمر ``حذف قواعد بيانات gcloud alpha firestore`` .

gcloud alpha firestore databases delete --database=DATABASE_ID

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

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

يمكنك استخدام شروط إدارة الهوية والوصول لتكوين أذونات الوصول على مستوى كل قاعدة بيانات. تستخدم الأمثلة التالية Google Cloud CLI لتعيين الوصول المشروط لقاعدة بيانات واحدة أو أكثر. يمكنك أيضًا تحديد شروط IAM في وحدة تحكم GCP .

عرض سياسات IAM الحالية

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 Firestore ضمن مصدرين مراقبين.

يمكنك فحص المقاييس المجمعة على مستوى قاعدة البيانات من خلال النظر إلى firestore.googleapis.com/Database . يتم تجميع المقاييس المذكورة ضمن firestore_instance على مستوى المشروع.

محددات

ماذا بعد