אימות מהיר של כללי האבטחה של Firebase

כדי לבדוק במהירות את Firebase Security Rules המעודכן במסוף Firebase, תוכלו להשתמש ב-Rules Playground.

'אזור המשחק של הכללים' הוא כלי נוח לשימוש כשבודקים התנהגויות חדשות או מאמתים במהירות כללים בזמן הכתיבה שלהם. תוצג הודעה שמאשרת שהגישה אושרה או נדחתה בהתאם לפרמטרים שהגדרתם בסימולציה.

שימוש ב-Rules Playground

  1. פותחים את מסוף Firebase ובוחרים את הפרויקט.
  2. לאחר מכן, בתפריט הניווט של המוצרים, מבצעים אחת מהפעולות הבאות:
    • בוחרים באפשרות המתאימה: Realtime Database,‏ Cloud Firestore או Storage, ולוחצים על Rules כדי לעבור לעורך Rules.
  3. אחרי שמסיימים לערוך, לוחצים על Rules Playground (מגרש הבדיקה של הכללים) בעורך.
  4. בהגדרות של Rules Playground, בוחרים אפשרויות לבדיקה, כולל:
    • בדיקת פעולות קריאה או כתיבה.
    • מיקום ספציפי במסד הנתונים או בקטגוריית האחסון, כנתיב.
    • סוג האימות – משתמש לא מאומת, משתמש אנונימי מאומת או מזהה משתמש ספציפי.
    • נתונים ספציפיים למסמך שהכללים מפנים אליהם באופן ספציפי (לדוגמה, אם הכללים דורשים נוכחות של שדה ספציפי לפני שמאפשרים כתיבה).
  5. לוחצים על הפעלה ומחפשים את התוצאות בבאנר שמעל לעורך.

תרחיש לדוגמה ב-Rules Playground

אפשר לבדוק את ההתנהגות של Rules Playground באמצעות התרחיש לדוגמה והכללים הבסיסיים הבאים.

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 ומזינים נתיב תקין בשדה Location.

  • מפעילים את המתג Authentication ובוחרים סוג אימות בתפריט הנפתח Provider.

  • מזינים את פרטי מזהה המשתמש ולוחצים על הפעלה.

התוצאות של הסימולציה מופיעות בחלק העליון של העורך. בהתאם לפרטי מזהה המשתמש שהזנתם, אמור להופיע באנר שמאשר שהרשאת הקריאה אושרה או נדחתה.