التحقق من صحة قواعد أمان Firebase بسرعة

لاختبار Firebase Security Rules المعدّل بسرعة في وحدة تحكّم Firebase، استخدِم أداة Rules Playground.

"أداة قواعد Google" هي أداة ملائمة للاستخدام أثناء استكشاف سلوكيات جديدة أو التحقّق بسرعة من القواعد أثناء كتابتها. حيث يتم عرض رسالة تؤكد أن الوصول إما مسموح به أو مرفوض وفقًا للمعلمات التي حددتها للمحاكاة.

استخدام "مساحة اختبار القواعد"

  1. افتح وحدة تحكُّم Firebase واختَر مشروعك.
  2. بعد ذلك، من شريط التنقّل في المنتجات، نفِّذ أحد الإجراءات التالية:
    • اختَر Realtime Database أو Cloud Firestore أو مساحة التخزين، حسب الاقتضاء، ثم انقر على القواعد للانتقال إلى Rules أداة التعديل.
  3. بعد إجراء التعديلات، انقر على Rules Playground (مساحة اختبار القواعد) من المحرِّر.
  4. في إعدادات Rules Playground (مساحة اختبار القواعد)، اختَر خيارات لاختبارك، بما في ذلك:
    • اختبار عمليات القراءة أو الكتابة
    • موقع معيّن في قاعدة بياناتك أو حزمة التخزين، كمسار
    • نوع المصادقة - مستخدم مجهول لم تتم مصادقته أو تمت مصادقته أو معرّف مستخدم معيّن.
    • البيانات الخاصة بالمستندات التي تشير إليها قواعدك على وجه التحديد (مثل إذا كانت قواعدك تتطلّب توفُّر حقل معيّن قبل السماح بالكتابة).
  5. انقر على تشغيل وابحث عن النتائج في البانر أعلى أداة التعديل.

مثال على سيناريو "مساحة اختبار القواعد"

اختبِر سلوك "أداة إنشاء القواعد" باستخدام نموذج السيناريو التالي والقواعد الأساسية.

Cloud Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /some_collection/{document} {
      allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
      }
    }
  }

Realtime Database

 // These rules grant access to a node matching the authenticated
 // user's ID from the Firebase auth token
 {
   "rules": {
     "users": {
       "$uid": {
         ".read": "$uid === auth.uid",
         ".write": "$uid === auth.uid"
       }
     }
   }
 }
 

Cloud Storage

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/path/to/file.txt"
    match /user/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • في محرِّر Rules، أضِف القاعدة المذكورة أعلاه.

  • اختَر get من القائمة المنسدلة نوع المحاكاة وأدخِل مسارًا صالحًا في الحقل الموقع الجغرافي.

  • فعِّل المصادقة واختَر نوع مصادقة من قائمة موفّر الخدمة.

  • أدخِل تفاصيل معرّف المستخدم وانقر على تشغيل.

تظهر نتائج المحاكاة في أعلى المحرِّر. استنادًا إلى تفاصيل رقم تعريف المستخدم التي أدخلتها، من المفترض أن يظهر لك بانر يؤكّد ما إذا كان قد تم السماح بقراءة الرسالة أو رفضها بنجاح.