rules. MapDiff
MapDiff 型。
MapDiff 型は、2 つのフィールドを比較した結果を rules.Map オブジェクト。
差分の作成に使用できる MapDiff リテラルはありません。MapDiff オブジェクト rules.Map#diff 関数の呼び出しによって返されます。
以下で説明する MapDiff 関数は、 rules.Map#diff。MapDiff 関数はすべて rules.Set を返す 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"]);
メソッド
addKeys
addKeys() は rules.Set を返します。
rules.Set を返します。これは Map が呼び出すキーを一覧表示します
diff()
には、diff()
に渡される Map が
できません。
例
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
影響を受けるキー
sensitiveKeys() が 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()
changeKeys
changeKeys() は rules.Set を返します。
rules.Set を返します。これは Map と
diff()
を呼び出し、マップを diff()
に渡しましたが、
その値が等しくないことを意味します
例
{"a":0}.diff({"a":1, "b":4}).changedKeys() == ["a"].toSet()
removedKeys
removedKeys() は rules.Set を返します。
rules.Set を返します。これは Map が呼び出すキーを一覧表示します
diff()
には、渡されたマップと比較した値が含まれていません。
diff()
。
例
{}.diff({"a":1}).removedKeys() == ["a"].toSet()
変更されていないキー
emptyKeys() は rules.Set を返します。
rules.Set を返します。これは Map と
diff()
と diff()
に渡されるマップを呼び出し、
その値が等しいことを確認します
例
{"a": 0}.diff({"a":0}).unchangedKeys() == ["a"].toSet()