将newdata转换为int/in firebase安全规则中

发布于 2025-01-25 14:51:19 字数 1536 浏览 3 评论 0原文

我正在设置安全规则,以便仅当(newData + athanSertedData)<限制

,但firebase安全规则编辑器显示以下错误

无效 +表达式:正确操作数不是数字或字符串。

我们可以将newdata转换为int/long,以便我们可以添加并检查状态吗?

我有错误的规则,

".write":"auth != null && ((root.child(\"GameResult\").child($adminRef).child($gameName).child($jodi).child($uid).val()+newData) < root.child(\"Limits\").child($adminRef).child(\"maxAmountOnEachJodi\").val())"

完整的规则(请立即忽略其他问题),

{
   "rules":{
      ".read":"auth != null",
     // ".write":"auth != null",
      "GameResult":{
         "$adminRef":{
            "$gameName":{
               "$jodi":{
                  "$uid":{
                     ".write":"auth != null && ((root.child(\"GameResult\").child($adminRef).child($gameName).child($jodi).child($uid).val()+newData) < root.child(\"Limits\").child($adminRef).child(\"maxAmountOnEachJodi\").val())"
                  }
               }
            }
         }
      }
   }
}

数据库节点如下: gamereSult节点中的值(红色标记)不应在极限节点中跨越值(蓝色标记)。

gameresult节点:

“

limit节点:

​/*/MaxamountoneachJodi:value)

I am setting security rules so user can increment a value only if (newData + alreadyInsertedData) < limit

but firebase security rules editor showing below error

Invalid + expression: right operand is not a number or string.

Can we convert newData to int/long so we can add it and check if condition?

the rule I have error in,

".write":"auth != null && ((root.child(\"GameResult\").child($adminRef).child($gameName).child($jodi).child($uid).val()+newData) < root.child(\"Limits\").child($adminRef).child(\"maxAmountOnEachJodi\").val())"

complete rules(please ignore other issues right now),

{
   "rules":{
      ".read":"auth != null",
     // ".write":"auth != null",
      "GameResult":{
         "$adminRef":{
            "$gameName":{
               "$jodi":{
                  "$uid":{
                     ".write":"auth != null && ((root.child(\"GameResult\").child($adminRef).child($gameName).child($jodi).child($uid).val()+newData) < root.child(\"Limits\").child($adminRef).child(\"maxAmountOnEachJodi\").val())"
                  }
               }
            }
         }
      }
   }
}

database nodes are below:
the value(red marked) in GameResult node should not cross the value(blue marked) in Limit node.

GameResult node:

gameresult node

Limit node:

enter image description here

Finally what I want is:

(GameResult/*/*/*/*:value+ newData) <= (Limits/*/*/maxAmountOnEachJodi:value)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疾风者 2025-02-01 14:51:19

我发现它是一个具有val()函数的对象。因此,调用newdata.val()将完​​成工作。

I found it, newData is kind of a object which has a val() function. So calling newData.val() will get the job done.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文