如何使用c

时间:2019-06-13 13:02:30

标签: firebase firebase-realtime-database firebase-security-rules

我有一个像这样的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”。

这怎么办?甚至有可能吗?

1 个答案:

答案 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”链接来获取此信息。