กฎ . MapDiff
ประเภท MapDiff
ประเภท MapDiff แสดงถึงผลลัพธ์ของการเปรียบเทียบ กฎสองข้อ วัตถุแผนที่
ไม่มี MapDiff ตัวอักษรสำหรับใช้ในการสร้างความแตกต่าง วัตถุ MapDiff จะถูกส่งกลับโดยการเรียกฟังก์ชัน Rules.Map#diff
ฟังก์ชัน MapDiff ที่อธิบายไว้ด้านล่างนี้ถูกเรียกโดยการผูกมัดกับ กฎ Map#diff ฟังก์ชัน MapDiff ทั้งหมดส่งคืน กฎ ตั้งค่า คีย์รายการวัตถุเปรียบเทียบระหว่างวัตถุ Map
// 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 ซึ่งแสดงรายการคีย์ใดๆ ที่การเรียก Map diff()
มี แต่ Map ที่ส่งผ่านไปยัง diff()
ไม่มี
ตัวอย่าง
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
คีย์ที่ได้รับผลกระทบ
ได้รับผลกระทบKeys() ส่งคืน กฎชุด
ส่งคืน Rules.Set ซึ่งแสดงรายการคีย์ใด ๆ ที่ถูกเพิ่ม ลบออกจาก หรือแก้ไขจากการเรียก Map diff()
เทียบกับ Map ที่ส่งผ่านไปยัง 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
รายการคีย์ที่เพิ่ม ลบออก หรือเปลี่ยนแปลงจาก กฎ แผนที่ ที่ส่งผ่านไปยังฟังก์ชันMap.diff()
เปลี่ยนคีย์แล้ว
changeKeys() ส่งคืน กฎชุด
ส่งกลับ กฎชุด ซึ่งแสดงรายการคีย์ใด ๆ ที่ปรากฏในการเรียกแผนที่ทั้ง diff()
และแผนที่ที่ส่งผ่านไปยัง diff()
แต่มีค่าไม่เท่ากัน
ตัวอย่าง
{"a":0}.diff({"a":1, "b":4}).changedKeys() == ["a"].toSet()
ลบคีย์แล้ว
RemoveKeys() ส่งคืน กฎชุด
ส่งคืน Rules.Set ซึ่งแสดงรายการคีย์ใดๆ ที่การเรียก Map diff()
ไม่มีการเปรียบเทียบกับ Map ที่ส่งผ่านไปยัง diff()
ตัวอย่าง
{}.diff({"a":1}).removedKeys() == ["a"].toSet()
คีย์ไม่เปลี่ยนแปลง
unchangedKeys() ส่งคืน กฎชุด
ส่งกลับ กฎชุด ซึ่งแสดงรายการคีย์ใด ๆ ที่ปรากฏในการเรียกแผนที่ทั้ง diff()
และแผนที่ที่ส่งผ่านไปยัง diff()
และมีค่าเท่ากัน
ตัวอย่าง
{"a": 0}.diff({"a":0}).unchangedKeys() == ["a"].toSet()