【发布时间】:2015-12-03 01:41:34
【问题描述】:
我正在使用 Firebase Bolt 编译器生成规则,我注意到它生成的读写规则是不同的。
我编写了一个函数来查看某个节点以查看那里是否有有效数据。然后我在不同的部分使用该函数。
所以函数类似于
isValidInvite(r_id, invite_id) = root['invites'][r_id][invite_id] != null;
当我使用它时:
read() = isValidInvite($resource_id, $invite_id);
write() =isValidInvite($resource_id, $invite_id);
Bolt生成的json是
".read": "root.child('invites').child($resource_id).child($invite_id).val() != null",
".write":"newData.parent().parent().parent().parent().child('invites').child($resource_id).child($invite_id).val() != null"
我相信两者是等价的吧?去查看某个节点并确保那里有数据。 “写”需要很长的路才能到达同一个节点。上树再下来。 这些规则有效,我实际上不会对读写使用相同的函数,但我正在尝试更好地理解 Firebase 规则和 Bolt。
顺便说一句,我无法想象在没有使用 Bolt 的情况下编写规则。与尝试手动操作相比有了很大进步。
【问题讨论】:
标签: firebase firebase-security