เนมสเปซ: แก้ไขข้อบกพร่อง

แก้ปัญหา

debug()

ฟังก์ชันแก้ไขข้อบกพร่องพื้นฐานที่พิมพ์ภาษาของกฎความปลอดภัย ออบเจ็กต์ ตัวแปร และผลลัพธ์ของคำสั่งตามที่เป็นอยู่ ประเมินโดยเครื่องมือกฎความปลอดภัย เขียนเอาต์พุตของ debug ไปยัง Firestore-debug.log

สามารถเรียกฟังก์ชัน debug ภายในกฎได้เท่านั้น สภาพสินค้า

การบล็อกฟังก์ชัน debug รายการจะเรียกใช้โดยเครื่องมือกฎการรักษาความปลอดภัยใน โปรแกรมจำลอง Firestore ซึ่งเป็นส่วนหนึ่งของชุดโปรแกรมจำลอง Firebase การแก้ไขข้อบกพร่อง จะไม่ส่งผลใดๆ ต่อเวอร์ชันที่ใช้งานจริง

ระบบจะแทรกรายการไฟล์บันทึกการแก้ไขข้อบกพร่องไว้หน้าด้วยสตริงที่ระบุกฎ ประเภทข้อมูลภาษาของเอาต์พุตบันทึก (เช่น string_value, map_value)

การเรียกไปยัง debug สามารถซ้อนกันได้

ปัจจุบันฟีเจอร์ debug ไม่รองรับแนวคิดการบันทึก ระดับต่างๆ (เช่น INFO, WARN, ERROR)

// firestore.rules
// Nested debug calls in the following match block....
match /carts/{cartID} {
  allow create: if request.auth != null && request.auth.uid == request.resource.data.ownerUID;
    allow read, update, delete: if
      debug(
        debug(request.auth.uid) == debug(resource.data.ownerUID)
      );
  }
...

// firestore-debug.log
// ...produce logfile output like the following.
string_value: "alice" // for debug(request.auth.uid)

string_value: "alice" // for debug(resource.data.ownerUID)

bool_value: true      // for the outermost enclosing debug() call
...