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

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

توفّر قواعد الأمان إمكانية التحكّم في الوصول إلى البيانات والتحقّق من صحتها بتنسيق بسيط وواضح. لإنشاء أنظمة وصول مستندة إلى المستخدمين والأدوار تحافظ على أمان بيانات المستخدمين، عليك استخدام Firebase Authentication مع 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 محاكي قواعد يمكنك استخدامه لاختبار مجموعة القواعد. يمكنك الوصول إلى المحاكي في كلّ من &quot;وحدة تحكّم Google Cloud&quot; و&quot;وحدة تحكّم Firebase&quot;.

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

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

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

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

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

  • firebaserules.rulesets.test

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

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

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

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

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

نشر القواعد

قبل أن تتمكّن من بدء استخدام Cloud Firestore من تطبيقك على الجهاز الجوّال، عليك نشر قواعد الأمان. يمكنك نشر القواعد في وحدة تحكّم Firebase أو في وحدة تحكّم Google Cloud أو باستخدام واجهة سطر الأوامر (CLI) الخاصة بـ Firebase أو من خلال واجهة REST API الخاصة بإدارة 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 Console، يجب أن تتوفّر لديك أذونات "إدارة الهوية وإمكانية الوصول" التالية:

  • 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 Console، انتقِل إلى صفحة قواعد البيانات.
  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 يمكنه تسجيل متطلبات التفويض التي يمكن استخدامها من خلال "قواعد الأمان في Firebase" لكلا المنتجين. لمزيد من المعلومات، اطّلِع على دليل Cloud Storage.

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