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

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

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

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

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

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

ทดสอบลักษณะการทำงานของพื้นที่ทดลองกฎด้วยสถานการณ์ตัวอย่างและกฎพื้นฐานต่อไปนี้

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;
    }
  }
}
  • เพิ่มกฎที่กำหนดในเครื่องมือแก้ไข Security Rules

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

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

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

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