我有一个像这样的firebase条目:
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”。
这怎么办?甚至有可能吗?
答案 0 :(得分:0)
这在语法上看起来不正确:
root.child('Chat/'ID'+root.child('Chat/$uid/sender_identifier').val()/nconfirmations').val()
我最好的猜测是您正在尝试做:
root.child('聊天/ID'+root.child('Chat/$uid/sender_identifier')。val()+'/ nconfirmations')。val()
在验证中将使用路径/Chat/ID.../nconfirmations
中的值,其中...
是从/Chat/$uid/sender_identifier
中读取的值。
如果这不是问题,请使用读取数据的最少完整代码以及您要作为文本进行验证的实际JSON更新您的问题。您可以通过点击Firebase Database console上溢出菜单(⠇)中的“导出JSON”链接来获取此信息。