กฎ MapDiff
ประเภท MapDiff
ประเภท MapDiff แสดงผลลัพธ์ของการเปรียบเทียบ rules.Map
ไม่มีลิเทอรัล MapDiff สำหรับใช้ในการสร้างความแตกต่าง วัตถุ MapDiff จะแสดงผลโดยการเรียกฟังก์ชัน rules.Map#diff
ฟังก์ชัน MapDiff ที่อธิบายไว้ด้านล่างถูกเรียกโดยการเชื่อมโยงกับ rules.Map#diff ฟังก์ชัน MapDiff ทั้งหมดจะแสดง rules.Set ออบเจ็กต์ที่แสดงคีย์ที่เปรียบเทียบระหว่างออบเจ็กต์ Maps
// Compare two Map objects and return whether the key "a" has been // affected; that is, key "a" was added or removed, or its value was updated. request.resource.data.diff(resource.data).affectedKeys().hasOnly(["a"]);
เมธอด
คีย์ที่เพิ่ม
addedKeys() จะแสดงผล rules.Set
แสดงค่า rules.Set ซึ่งจะแสดงคีย์ที่การเรียกใช้แผนที่
diff()
ประกอบด้วยสิ่งที่แผนที่ส่งไปยัง diff()
ทำ
ไม่ได้
- การคืนสินค้า
-
non-null rules.Set
ซึ่งเป็นรายการคีย์ที่เพิ่มลงใน rules.Map ที่ส่งไปยัง ฟังก์ชันMap.diff()
ตัวอย่าง
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
คีย์ที่ได้รับผลกระทบ
actionsKeys() จะแสดงผล rules.Set
แสดงผล rules.Set ซึ่งแสดงรายการคีย์ที่มีการเพิ่มคีย์
ถูกลบจาก หรือแก้ไขจากการโทร diff()
ในแผนที่ เมื่อเทียบกับ
แผนที่ผ่านไปยัง diff()
ฟังก์ชันนี้จะแสดงเซต
เทียบเท่ากับผลลัพธ์รวมของ MapDiff.addedKeys()
MapDiff.removedKeys()
และ MapDiff.changedKeys()
({"a":0, "c":0, "u":0}).diff({"r":0, "c":1, "u": 0}).affectedKeys() == ["a", "r", "c"].toSet()
- การคืนสินค้า
-
non-null rules.Set
,รายการคีย์ที่เพิ่ม นำออกจาก หรือเปลี่ยนจาก rules.Map ที่ส่งไปยังฟังก์ชันMap.diff()
คีย์ที่เปลี่ยน
changesKeys() จะแสดงผล rules.Set
แสดงค่า rules.Set ซึ่งแสดงรายการคีย์ที่ปรากฏในทั้งแผนที่
การเรียก diff()
และแผนที่ได้ส่งผ่านไปยัง diff()
แต่
ที่มีค่าไม่เท่ากัน
ตัวอย่าง
{"a":0}.diff({"a":1, "b":4}).changedKeys() == ["a"].toSet()
คีย์ที่นำออก
removedKeys() จะแสดงผล rules.Set
แสดงค่า rules.Set ซึ่งจะแสดงคีย์ที่การเรียกใช้แผนที่
diff()
ไม่มีเมื่อเทียบกับแผนที่ที่ส่งไปยัง
diff()
ตัวอย่าง
{}.diff({"a":1}).removedKeys() == ["a"].toSet()
คีย์ที่ไม่เปลี่ยนแปลง
noneKeys() จะแสดงผล rules.Set
แสดงค่า rules.Set ซึ่งแสดงรายการคีย์ที่ปรากฏในทั้งแผนที่
กำลังเรียก diff()
และแผนที่ได้ส่งผ่านไปยัง diff()
และ
ที่มีค่าเท่ากัน
ตัวอย่าง
{"a": 0}.diff({"a":0}).unchangedKeys() == ["a"].toSet()