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

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

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

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

  1. افتح وحدة تحكُّم Firebase واختَر مشروعك.
  2. بعد ذلك، من شريط التنقّل في المنتجات، نفِّذ أحد الإجراءات التالية:
    • اختَر Realtime Database أو Cloud Firestore أو مساحة التخزين. على النحو المناسب، ثم انقر على القواعد للانتقال إلى Rules المحرِّر.
  3. بعد الانتهاء من إجراء التعديلات، انقر على ساحة القواعد من أداة التعديل.
  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 من القائمة المنسدلة نوع المحاكاة وأدخِل مسارًا VALID في الحقل الموقع الجغرافي.

  • فعِّل المصادقة واختَر نوع مصادقة من إيقاف بيانات موفّر المحتوى

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

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