تصف هذه الصفحة كيفية إنشاء قواعد بيانات 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
إنشاء قاعدة بيانات
لإنشاء قاعدة بيانات، يمكنك استخدام إحدى الطرق التالية:
وحدة التحكم
-
في وحدة تحكُّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.
- إذا كانت هذه هي أول قاعدة بيانات مُسمّاة، انقر على إضافة قاعدة بيانات.
- بخلاف ذلك، انقر على (الإعداد التلقائي)، ثم إضافة قاعدة بيانات.
- اضبط قاعدة البيانات. أدخِل معرِّف قاعدة بيانات. حدد موقعًا. انقر على إنشاء قاعدة بيانات.
gcloud
استخدِم الأمر
gcloud firestore databases create
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
استبدِل ما يلي:
- DATABASE_ID: معرّف قاعدة بيانات صالح.
- LOCATION: اسم المنطقة أو المناطق المتعددة في Cloud Firestore
- DATABASE_TYPE: إما
firestore-native
للوضع الأصلي أو وضع مخزن البيانات لوضع تخزين البيانات.
--delete-protection
هي علامة اختيارية لتفعيل الحماية من عمليات الحذف.
لا يمكنك حذف قاعدة بيانات تم تفعيل حماية الحذف فيها حتى يتم إيقاف هذا الإعداد. هذا الإعداد معطل بشكل افتراضي.
Firebase CLI
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
استبدِل ما يلي:
- DATABASE_ID: معرّف قاعدة بيانات صالح.
- LOCATION: اسم المنطقة أو المناطق المتعددة في Cloud Firestore
- DELETE_PROTECTION_ENABLEMENT: إما
ENABLED
أوDISABLED
تكون قاعدة البيانات التي تم إنشاؤها دائمًا في وضع Firestore Native.
--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 }
استبدِل ما يلي:
- DATABASE_ID: معرّف قاعدة بيانات صالح.
- LOCATION: اسم المنطقة أو المناطق المتعددة في Cloud Firestore
- DATABASE_TYPE: إما
FIRESTORE_NATIVE
للوضع الأصلي أوDATASTORE_MODE
لوضع "مخزن البيانات" - DELETE_PROTECTION_ENABLEMENT: إما
DELETE_PROTECTION_ENABLED
أوDELETE_PROTECTION_DISABLED
.
delete_protection_state
هي وسيطة اختيارية لتفعيل الحماية من الحذف. لا يمكنك حذف قاعدة بيانات تم تفعيل ميزة حماية الحذف فيها
إلى أن يتم إيقاف هذا الإعداد. هذا الإعداد معطل بشكل افتراضي.
معرِّف قاعدة البيانات
تتضمن معرّفات قاعدة البيانات الصالحة (default)
وأرقام التعريف التي تتوافق مع ما يلي:
- يشتمل هذا الخيار على أحرف وأرقام وواصلات (
-
) فقط. - يجب أن تكون الأحرف صغيرة.
- يجب أن يكون الحرف الأول حرفًا.
- يجب أن يكون الحرف الأخير حرفًا أو رقمًا.
- 4 أحرف كحد أدنى
- 63 حرفًا كحدّ أقصى
- يجب ألا يكون معرّف المستخدم الفريد (UUID) أو يشبه المعرّف الفريد العالمي (UUID). على سبيل المثال، لا تستخدم معرّفًا مثل
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
إذا حذفت قاعدة بيانات، فلا يمكنك إعادة استخدام معرف قاعدة البيانات على الفور إلا بعد مرور 5 دقائق.
حذف الحماية
يمكنك استخدام حماية الحذف لمنع الحذف غير المقصود لقاعدة البيانات. لا يمكنك حذف قاعدة بيانات تم تفعيل ميزة "حماية الحذف" عليها إلا بعد إيقاف ميزة "حماية الحذف". تكون ميزة حماية الحذف غير مُفعَّلة تلقائيًا. يمكنك تفعيل ميزة "الحماية من الحذف" عند إنشاء قاعدة البيانات أو تعديل إعدادات قاعدة البيانات لتفعيل ميزة الحماية من الحذف.
إعداد قواعد أمان Cloud Firestore لقواعد البيانات
يمكنك استخدام واجهة سطر الأوامر في Firebase لنشر قواعد أمان Cloud Firestore في جميع قواعد البيانات. يُرجى الاطِّلاع على دليل إدارة قواعد أمان Cloud Firestore ونشرها.
الوصول إلى قاعدة بيانات مُسَمّاة باستخدام مكتبة عملاء
تتضمن قاعدة البيانات المُعنونة أي قاعدة بيانات لا تحمل اسم (default)
. يتم تلقائيًا ربط حِزم تطوير البرامج (SDK) لمنصة Firebase و"مكتبات عميل واجهة Google API" بقاعدة بيانات (default)
Cloud Firestore في مشروع معيّن. لإنشاء عميل متصل بقاعدة بيانات تسمى، اضبط معرف قاعدة البيانات عند إنشاء مثيل لعميل.
سرد قواعد البيانات
استخدم إحدى الطرق التالية لإدراج قواعد البيانات:
وحدة التحكم
في وحدة تحكّم Google Cloud Platform، انتقِل إلى صفحة قواعد البيانات.
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 لقاعدة البيانات هذه تلقائيًا. يتوقف العامل عن عرض الأحداث، ولكنه سيظل موجودًا إلى أن تحذف المشغّل.
وحدة التحكم
-
في وحدة تحكُّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.
- في علامة التبويب "البيانات"، أعلى عرض جدول البيانات لقاعدة البيانات، انقر على ، ثم اختَر حذف قاعدة البيانات.
- اتّبِع التعليمات لحذف قاعدة البيانات.
gcloud
استخدِم الأمر `gcloud firestore Planners delete`.
gcloud firestore databases delete --database=DATABASE_ID
استبدِل DATABASE_ID برقم تعريف قاعدة البيانات المطلوب حذفه.
ضبط أذونات الوصول لكل قاعدة بيانات
يمكنك استخدام شروط إدارة الهوية وإمكانية الوصول لضبط أذونات الوصول على مستوى كل قاعدة بيانات. تستخدم الأمثلة التالية واجهة سطر الأوامر في Google Cloud لتخصيص الوصول المشروط إلى قاعدة بيانات واحدة أو أكثر. يمكنك أيضًا تحديد شروط إدارة الهوية وإمكانية الوصول في وحدة تحكّم Google Cloud Platform.
عرض سياسات إدارة الهوية وإمكانية الوصول الحالية
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
على مستوى المشروع.
القيود
- يمكن أن يكون لديك ما يصل إلى 100 قاعدة بيانات كحد أقصى لكل مشروع. ويمكنك التواصل مع فريق الدعم لطلب زيادة هذا الحدّ.
- لا يمكنك حذف قاعدة بيانات
(default)
إذا كانت تحتوي على أي بيانات بحث في GAE. يُرجى استخدام واجهة برمجة التطبيقات لحذف الفهرس لحذف بيانات بحث GAE. إذا حذفت مؤخرًا بيانات بحث GAE، قد تكون هناك فترة انتظار قبل أن تتمكن من حذف قاعدة البيانات. - لا يمكنك حذف قاعدة بيانات
(default)
إذا كانت تحتوي على أي كيانات ثنائية كبيرة. يُرجى استخدام واجهة برمجة تطبيقات حذف Blobstore لحذف بيانات Blobstore. يمكنك التحقّق مما إذا كانت قاعدة بيانات(default)
تتضمّن بيانات Blobstore من خلال تنفيذ طلب بحث GQL التالي في وحدة تحكُّم Google Cloud Platform:SELECT * FROM __BlobInfo__
. - ولا يمكنك إعادة استخدام معرّف قاعدة بيانات إلا بعد مرور 5 دقائق على عملية الحذف.
- لا يتوافق الإصدار 1 من Cloud Function مع قواعد بيانات Firestore المُسمّاة. يُرجى استخدام العوامل المشغِّلة في Cloud Firestore (الجيل الثاني) لضبط الأحداث لقواعد البيانات المحدَّدة.
- قد تتوقف مشغِّلات دوال Firebase v1 ومشغّلات أحداث Firestore عن العمل بعد حذف قاعدة البيانات، حتى إذا تم إنشاء قاعدة بيانات جديدة بالاسم نفسه.