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

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

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

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 أو كيانات الكائن الثنائي الكبير (blob)، يجب حذف هذه البيانات أولاً.

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

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

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

  2. في علامة التبويب "البيانات"، أعلى عرض جدول البيانات لقاعدة البيانات، انقر على ، ثم اختَر حذف قاعدة البيانات.
  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. مثلاً: [email protected]
  • 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. مثلاً: [email protected]
  • DATABASE_ID: معرّف قاعدة بيانات
  • TITLE: عنوان اختياري للتعبير.
  • DESCRIPTION: وصف اختياري للتعبير

إزالة السياسات لعضو ودور معيّنين

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

اضبط ما يلي:

  • PROJECT_ID: رقم تعريف مشروعك
  • EMAIL: عنوان بريد إلكتروني يمثّل حسابًا معيّنًا على Google. على سبيل المثال، [email protected].

Cloud Monitoring

يتم تسجيل مقاييس Cloud Firestore ضمن موردَين مُراقَبَين.

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

القيود

  • يمكن أن يكون لديك 100 قاعدة بيانات كحدّ أقصى لكل مشروع. يمكنك التواصل مع فريق الدعم لطلب زيادة هذا الحدّ.
  • لا يمكنك حذف قاعدة بيانات (default) إذا كانت تحتوي على أي بيانات بحث في Google App Engine. يُرجى استخدام index delete api لحذف بيانات البحث في "إحصاءات Google للأعمال الإلكترونية". إذا حذفت مؤخرًا بيانات "بحث Google للأعمال الإلكترونية"، قد يكون هناك فترة انتظار قبل أن تتمكّن من حذف قاعدة البيانات.
  • لا يمكنك حذف قاعدة بيانات (default) إذا كانت تحتوي على أي عناصر مجموعات بيانات. يُرجى استخدام Blobstore delete api لحذف بيانات Blobstore. يمكنك التحقّق مما إذا كانت قاعدة بيانات (default) تحتوي على بيانات Blobstore من خلال تنفيذ طلب البحث التالي باستخدام لغة GQL في وحدة تحكّم Google Cloud: SELECT * FROM __BlobInfo__.
  • لا يمكنك إعادة استخدام معرّف قاعدة بيانات إلا بعد مرور 5 دقائق على عملية الحذف.
  • لا تتوافق الإصدار 1 من Cloud Function مع قواعد بيانات Firestore المُسمّاة. يُرجى استخدام عوامل تشغيل Cloud Firestore (الجيل الثاني) لضبط الأحداث للقواعد البيانات المُسمّاة.
  • قد تتوقف الإصدار 1 من عوامل تشغيل وظائف Firestore وعوامل تشغيل أحداث Firestore عن العمل بعد حذف قاعدة البيانات، حتى إذا تم إنشاء قاعدة بيانات جديدة بالاسم نفسه.

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