توضّح هذه الصفحة كيفية إنشاء 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
للوضع الأصلي أو datastore-mode لوضع Datastore
--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
لوضع Datastore - DELETE_PROTECTION_ENABLEMENT: إما
DELETE_PROTECTION_ENABLED
أوDELETE_PROTECTION_DISABLED
.
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 مشغلات لقاعدة البيانات هذه. يتوقف البدء عن إرسال الأحداث، ولكنه يبقى متوفّرًا إلى أن تتم حذفه.
وحدة التحكم
-
في وحدة التحكّم Firebase، انتقِل إلى صفحة قاعدة بيانات Firestore.
- في علامة التبويب "البيانات"، انقر على فوق عرض جدول البيانات لقاعدة البيانات، ثم انقر على حذف قاعدة البيانات.
- اتّبِع التعليمات لحذف قاعدة البيانات.
gcloud
يمكنك استخدام `gcloud firestore datas 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
على مستوى المشروع.
القيود
- يمكن أن يكون لديك ما يصل إلى 100 قاعدة بيانات كحد أقصى لكل مشروع. يمكنك التواصل مع فريق الدعم لطلب زيادة هذا الحدّ.
- لا يمكنك حذف قاعدة بيانات
(default)
إذا كانت تحتوي على أي بيانات بحث في Google App Engine. يُرجى استخدام واجهة برمجة التطبيقات لحذف الفهرس لحذف بيانات بحث GAE. إذا حذفت مؤخرًا بيانات بحث GAE، قد تكون هناك فترة انتظار قبل أن تتمكن من حذف قاعدة البيانات. - لا يمكنك حذف قاعدة بيانات
(default)
إذا كانت تحتوي على أي كيان ملفّ أرشيف. يُرجى استخدام Blobstore delete api لحذف بيانات Blobstore. يمكنك التحقّق مما إذا كانت قاعدة بيانات(default)
تحتوي على بيانات Blobstore من خلال تنفيذ طلب بحث GQL التالي في وحدة تحكُّم Google Cloud:SELECT * FROM __BlobInfo__
. - لا يمكنك إعادة استخدام معرّف قاعدة بيانات إلا بعد مرور 5 دقائق على عملية الحذف.
- لا يتوافق الإصدار 1 من Cloud Function مع قواعد بيانات Firestore المُسمّاة. يُرجى استخدام العوامل المشغِّلة في Cloud Firestore (الجيل الثاني) لضبط الأحداث لقواعد البيانات المحدَّدة.
- قد تتوقف الإصدار 1 من عوامل تشغيل وظائف Firestore وعوامل تشغيل أحداث Firestore عن العمل بعد حذف قاعدة البيانات، حتى إذا تم إنشاء قاعدة بيانات جديدة بالاسم نفسه.