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

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

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

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

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

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

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

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

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