بدء استخدام قواعد أمان Cloud Firestore

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

توفّر قواعد الأمان إمكانية التحكّم في الوصول والتحقّق من صحة البيانات بتنسيق بسيط ومعبّر. لإنشاء أنظمة وصول مستندة إلى المستخدمين والأدوار تحافظ على أمان بيانات المستخدمين، عليك استخدام مصادقة Firebase مع Cloud Firestore Security Rules.





للحصول على مساعدة من الذكاء الاصطناعي، انسخ الطلب أدناه إلى وكيل الترميز بالذكاء الاصطناعي (مثل Gemini في "استوديو Android" وAntigravity وClaude Code وCodex وCursor). يمكنك تخصيص الطلب وتكراره مع الوكيل. انتقِل إلى مهارات وكلاء Firebase للحصول على معلومات مفصّلة عن التثبيت.

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Firestore data.

الإصدار 2 من قواعد الأمان

اعتبارًا من مايو 2019، أصبح الإصدار 2 من قواعد أمان Cloud Firestore متاحًا الآن. يغيّر الإصدار 2 من القواعد سلوك أحرف البدل المتكررة {name=**}. يجب استخدام الإصدار 2 إذا كنت تخطّط لاستخدام طلبات البحث في مجموعة المجموعات. يجب الموافقة على الإصدار 2 من خلال جعل rules_version = '2'; السطر الأول في قواعد الأمان:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

قواعد الكتابة

ستكتب وتدير Cloud Firestore Security Rules مخصّصة لنموذج البيانات الذي تنشئه لقاعدة البيانات التلقائية وكل قاعدة بيانات إضافية في مشروعك.

تتكوّن جميع Cloud Firestore Security Rules من عبارات match التي تحدّد المستندات في قاعدة بياناتك، وتعبيرات allow التي تتحكّم في الوصول إلى هذه المستندات:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

يتم تقييم كل طلب قاعدة بيانات من مكتبة برامج Cloud Firestore للأجهزة الجوّالة/الويب وفقًا لقواعد الأمان قبل قراءة أي بيانات أو كتابتها. إذا كانت القواعد تمنع الوصول إلى أي من مسارات المستندات المحدّدة، سيتعذّر تنفيذ الطلب بالكامل.

في ما يلي بعض الأمثلة على مجموعات القواعد الأساسية. على الرغم من أنّ هذه القواعد صالحة، لا يُنصح باستخدامها في تطبيقات الإنتاج:

يجب المصادقة

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

رفض الكل

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

السماح بالكل

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

يتطابق المسار {document=**} المستخدَم في الأمثلة أعلاه مع أي مستند في قاعدة البيانات بأكملها. انتقِل إلى دليل بناء قواعد الأمان للتعرّف على كيفية مطابقة مسارات بيانات معيّنة والتعامل مع البيانات الهرمية.

قواعد الاختبار

توفّر أداة "Cloud Firestore" محاكيًا للقواعد يمكنك استخدامه لاختبار مجموعة القواعد. يمكنك الوصول إلى المحاكي في كل من وحدة تحكّم Google Cloud ووحدة تحكّم Firebase.

تتيح لك أداة محاكاة القواعد محاكاة عمليات القراءة والكتابة والحذف التي تمت مصادقتها وغير المصادقة. عند محاكاة طلب مصادقة، يمكنك إنشاء رموز المصادقة المميزة ومعاينتها من مقدّمي خدمات مختلفين. يتم تنفيذ الطلبات التي تمت محاكاتها وفقًا لمجموعة القواعد في المحرّر، وليس مجموعة القواعد المنشورة.

اختبار القواعد في Google Cloud Console

تتوفّر أداة محاكاة القواعد في وحدة تحكّم Google Cloud لـ Firestore في الوضع الأصلي في كل من الإصدارين Standard وEnterprise.

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

لاختبار قواعد الأمان في وحدة تحكّم Google Cloud، تحتاج إلى إذن "إدارة الهوية وإمكانية الوصول" التالي:

  • firebaserules.rulesets.test

لمحاكاة طلب قاعدة بيانات في Google Cloud Console، اتّبِع الخطوات التالية:

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
  2. انقر على رقم تعريف قاعدة البيانات التي تريد اختبارها.
  3. في قائمة التنقّل، انقر على الأمان.
  4. انقر على علامة التبويب المحاكي.
  5. في القائمة المنسدلة نوع المحاكاة، اختَر نوع العملية: الحصول على أو إنشاء أو تعديل أو حذف.
  6. في حقل الموقع الجغرافي، أدخِل مسار المستند الذي تريد اختباره (على سبيل المثال، users/user_123).
  7. (اختياري) بالنسبة إلى طلبات الإنشاء والتعديل، انقر على إنشاء مستند لضبط حمولة المستند الوهمي.
  8. (اختياري) لمحاكاة طلب تمت مصادقته، فعِّل المصادقة، واختَر موفِّر مصادقة (مثل google.com أو مجهول)، واضبط حقول حمولة الرمز المميّز.
  9. انقر على تشغيل.

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

اختبار القواعد في وحدة تحكُّم Firebase

لاختبار القواعد في وحدة تحكُّم Firebase، انتقِل إلى قواعد البيانات ومساحة التخزين > Firestore > علامة التبويب القواعد. انقر على Rules Playground لفتح إعدادات المحاكاة، وحدِّد خيارات المحاكاة، ثم انقر على Run.

نشر القواعد

قبل أن تتمكّن من بدء استخدام Cloud Firestore من تطبيقك على الأجهزة الجوّالة، عليك نشر قواعد الأمان. يمكنك نشر القواعد في وحدة تحكُّم Firebase أو وحدة تحكُّم Google Cloud باستخدام Firebase CLI أو واجهة برمجة التطبيقات REST لإدارة Cloud Firestore.

قد تستغرق التعديلات على Cloud Firestore Security Rules مدة تصل إلى دقيقة واحدة لتؤثر في طلبات البحث الجديدة والمستمعين. ومع ذلك، قد يستغرق نشر التغييرات بالكامل والتأثير في أي مستمعين نشطين ما يصل إلى 10 دقائق.

استخدام وحدة تحكُّم Firebase

لإعداد أول مجموعة من القواعد ونشرها لقاعدة البيانات التلقائية في مشروعك، انتقِل إلى قواعد البيانات ومساحة التخزين > Firestore > علامة التبويب القواعد في وحدة تحكّم Firebase.

إذا أنشأت قواعد بيانات متعددة لمشروعك، يمكنك نشر Cloud Firestore Security Rules لكل قاعدة بيانات. في وحدة تحكُّم Firebase، استخدِم أداة اختيار قاعدة البيانات للتبديل بين قاعدة البيانات التلقائية وأي قواعد بيانات إضافية.

اكتب قواعدك في المحرِّر على الإنترنت، ثم انقر على نشر.

استخدام وحدة تحكّم Google Cloud

يمكنك إدارة Cloud Firestore Security Rules ونشرها مباشرةً في وحدة تحكّم Google Cloud. تتوفّر أداة تعديل القواعد في Firestore في الوضع الأصلي في كلّ من الإصدارَين Standard وEnterprise.

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

لإدارة قواعد الأمان ونشرها في وحدة تحكّم Google Cloud، تحتاج إلى أذونات إدارة الهوية وإمكانية الوصول التالية:

  • firebaserules.releases.create
  • firebaserules.releases.delete
  • firebaserules.releases.update
  • firebaserules.rulesets.create
  • firebaserules.rulesets.delete
  • firebaserules.rulesets.list
  • firebaserules.rulesets.test (مطلوب لاستخدام محاكي القواعد)

لنشر القواعد في Google Cloud Console:

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
  2. انقر على معرّف قاعدة البيانات التي تريد إدارتها.
  3. في قائمة التنقّل، انقر على الأمان.
  4. انقر على علامة التبويب قواعد Firestore.
  5. في محرِّر القواعد، يمكنك الاطّلاع على قواعدك. للتعديل، انقر على مجموعة قواعد جديدة أو نسخ مجموعة القواعد، ثم عدِّل قواعدك.
  6. انقر على نشر لنشر التغييرات.

يمكنك أيضًا الاطّلاع على مجموعات القواعد السابقة في المخطط الزمني واستنساخها أو استعادتها.

استخدام Firebase CLI

يمكنك أيضًا نشر القواعد باستخدام واجهة سطر أوامر Firebase. يتيح لك استخدام واجهة سطر الأوامر (CLI) الاحتفاظ بقواعدك ضمن نظام التحكّم في الإصدارات مع الرمز البرمجي للتطبيق ونشر القواعد كجزء من عملية النشر الحالية.

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy rules for all configured databases
firebase deploy --only firestore

تحسين مستوى الأمان في "Cloud Storage"

ستستفيد تطبيقاتك من ميزات قاعدة البيانات الفعّالة في Cloud Firestore وميزات تخزين الملفات وإدارتها في Cloud Storage. وعند استخدام هذين المنتجَين معًا، يتم تعزيز أمان التطبيق، لأنّ Cloud Firestore يمكنه تسجيل متطلبات التفويض التي يمكن استخدامها من خلال &quot;قواعد أمان Firebase&quot; لكلا المنتجَين. لمزيد من المعلومات، يُرجى الاطّلاع على دليل Cloud Storage.

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