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

لاختبار إصدار Firebase Security Rules الجديد سريعًا في وحدة تحكُّم Firebase، يُرجى استخدام ملعب القواعد.

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

استخدام "مساحة المرح"

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

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

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

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