ตรวจสอบกฎการรักษาความปลอดภัยของ 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>/file.txt"
    match /user/{userId}/{fileName} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • ในRulesเครื่องมือแก้ไข ให้เพิ่มกฎที่ระบุ

  • เลือก get จากเมนูแบบเลื่อนลงประเภทการจำลอง แล้วป้อนเส้นทางที่ถูกต้อง ในช่องตำแหน่ง

  • เปิดการตรวจสอบสิทธิ์ แล้วเลือกประเภทการตรวจสอบสิทธิ์จากเมนูแบบเลื่อนลงของผู้ให้บริการ

  • ป้อนรายละเอียดรหัสผู้ใช้ แล้วคลิกเรียกใช้

ผลลัพธ์ของการจำลองจะปรากฏที่ด้านบนของเอดิเตอร์ คุณควรเห็นแบนเนอร์ที่ยืนยันว่าระบบอนุญาตหรือปฏิเสธการอ่าน ตามรายละเอียดรหัสผู้ใช้ที่คุณป้อน