我正在使用Firebase Bolt编译器生成规则,并且我注意到它所生成的读写区别是不同的。使用Bolt编译器的Firebase规则
我写了一个函数,查看某个节点,看看那里是否有有效的数据。然后我在不同的部分使用该功能。
因此,功能是一样的东西
isValidInvite(r_id, invite_id) = root['invites'][r_id][invite_id] != null;
,当我使用它:
read() = isValidInvite($resource_id, $invite_id);
write() =isValidInvite($resource_id, $invite_id);
,博尔特产生的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的规则。通过手工尝试完成巨大的进步。
我认为这可能是一个新的vs现有的东西。感谢您的解释。你知道Bolt是否支持或将支持将评论转交给json吗? – VladimirSD
功能请求在问题跟踪器中欢迎:-) – mckoss