我有一个这样的火力基地条目:
ID111
nconfirmations: 4
安托赫是这样的:
ID222
sender_identifier: 111
我想制定一个 firebase 规则,一旦 ID222 设置为能够读取的内容,该规则就会引用 ID111 内容。
我试过这个:
{
"rules": {
"Chat": {
"$uid": {
".read": "auth!=null
&& ($uid.contains(data.child('sender_identifier').val()
&& (root.child('Chat/'ID'+root.child('Chat/$uid/sender_identifier').val()/nconfirmations').val()>=2)) ",
为
$uid.contains(data.child('sender_identifier').val()
我可以做提到的限制,只有 ID222 是可以读取的,因为它有"111",但如果我这样做,看起来我不能再引用任何带有数据的条目,此时数据仅指 ID222 条目。
我尝试使用根路径访问内容,如规则所示,但它就是不飞。
如果规则正常工作,我想它应该给出预期的结果,因为'ID'+root.child('Chat/$uid/sender_identifier').val()
应该返回"ID111"。
怎么能做到这一点呢?甚至可能吗?
看起来语法不正确:
root.child('Chat/'ID'+root.child('Chat/$uid/sender_identifier').val()/nconfirmations').val()
我最好的猜测是你正在尝试做:
root.child('Chat/ID'+root.child('Chat/$uid/sender_identifier'(.val((+'/nconfirmations'(.val((
这将在验证中使用路径/Chat/ID.../nconfirmations
中的值,...
是从/Chat/$uid/sender_identifier
读取的值。
如果这不是问题所在,请使用读取数据的最小完整代码以及作为文本进行验证的实际 JSON 来更新您的问题。您可以通过点击 Firebase 数据库控制台上溢出菜单 (⠇( 中的"导出 JSON"链接来获取此信息。