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

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

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

استخدام "أداة إنشاء القواعد"

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

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

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

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