ตรวจสอบกฎการรักษาความปลอดภัยของ Firebase อย่างรวดเร็ว

หากต้องการทดสอบ Firebase Security Rules ที่อัปเดตแล้วในคอนโซล Firebase อย่างรวดเร็ว ให้ใช้ Sandbox ของกฎ

พื้นที่ทดสอบกฎเป็นเครื่องมือที่สะดวกเมื่อคุณสำรวจลักษณะการทํางานใหม่ๆ หรือตรวจสอบกฎอย่างรวดเร็วขณะเขียน ระบบจะแสดงข้อความที่ยืนยันว่ามีการอนุญาตหรือปฏิเสธการเข้าถึงตามพารามิเตอร์ที่คุณตั้งค่าไว้สำหรับการจําลอง

ใช้พื้นที่ทดลองกฎ

  1. เปิดคอนโซล Firebase แล้วเลือกโปรเจ็กต์
  2. จากนั้นทําอย่างใดอย่างหนึ่งต่อไปนี้จากการนําทางผลิตภัณฑ์
    • เลือก Realtime Database, Cloud Firestore หรือพื้นที่เก็บข้อมูลตามเหมาะสม แล้วคลิกกฎเพื่อไปยังRulesเครื่องมือแก้ไข
  3. เมื่อแก้ไขเสร็จแล้ว ให้คลิกพื้นที่ทดสอบกฎจากเครื่องมือแก้ไข
  4. ในการตั้งค่าพื้นที่ทดสอบกฎ ให้เลือกตัวเลือกสําหรับการทดสอบ ซึ่งรวมถึงตัวเลือกต่อไปนี้
    • การทดสอบการอ่านหรือเขียน
    • ตำแหน่งที่เฉพาะเจาะจงในฐานข้อมูลหรือที่เก็บข้อมูลเป็นเส้นทาง
    • ประเภทการตรวจสอบสิทธิ์ - ผู้ใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์ ผู้ใช้ที่ไม่ระบุตัวตนซึ่งผ่านการตรวจสอบสิทธิ์ หรือรหัสผู้ใช้ที่เฉพาะเจาะจง
    • ข้อมูลที่เฉพาะเจาะจงของเอกสารที่กฎของคุณอ้างอิงโดยเฉพาะ (เช่น หากกฎกำหนดให้มีช่องที่เฉพาะเจาะจงก่อนที่จะอนุญาตให้เขียน)
  5. คลิกเรียกใช้ แล้วดูผลลัพธ์ในแบนเนอร์เหนือเครื่องมือแก้ไข

ตัวอย่างสถานการณ์ในแท็บพื้นที่ทดลองกฎ

ทดสอบลักษณะการทํางานของ 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 จากเมนูแบบเลื่อนลงประเภทการจําลอง แล้วป้อนเส้นทางที่ถูกต้องในช่องตําแหน่ง

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

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

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