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

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

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

שימוש ב-Rules Playground

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

תרחיש לדוגמה של כללים

אפשר לבדוק את ההתנהגות של 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.

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

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