如何在firebase数据库中实现基于用户的安全性?

如何在firebase数据库中实现基于用户的安全性?,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,这是数据库,例如: "Messages" : { "Message1" : { "Uid" : "sampleid1" "Text" : "hi" }, "Message2" : { "Uid" : "sampleid2" "Text" : " hello" } } 我只希望那

这是数据库,例如:

"Messages" : {
      "Message1" : {
               "Uid" : "sampleid1"
                "Text" : "hi"
                },
       "Message2" : {
                "Uid" : "sampleid2"
                "Text" : " hello"
                }
  }
我只希望那些用户阅读uid等于
Message#
uid
字段的消息

firebase文档中给出的数据库结构(即在数据库中使用基于用户id的消息,其中每条消息的节点表示发送消息的用户的uid)无法实现我的项目目标,因为我需要知道每次任何用户发送消息时发送消息的用户的uid。

因此,请提出有助于我完成本问题所述任务的规则

此外,当我在上述数据库结构上应用某些规则时,我无法读取任何数据,因为“firebase规则不是过滤器”

请忽略上面示例中编写的json的语法和格式,因为它仅供参考


请帮忙

构建您的数据,以便:

"messages" : {
  "<receiver_uid>" : {
      "msg_1" : {
         "text" : "Hello world...",
         "uid" : "<sender_uid>"
      }
      // more msgs for this receiver ...
   }
}

构建您的数据,以便:

"messages" : {
  "<receiver_uid>" : {
      "msg_1" : {
         "text" : "Hello world...",
         "uid" : "<sender_uid>"
      }
      // more msgs for this receiver ...
   }
}

不,先生,这个结构不适合我。由于我需要在child-changed-listeners上附加消息,然后在child-added-listener上附加接收者uid,所以它不会获取接收消息的人的uid。这就是我在问题中提到的。你能再告诉我一点你真正想要实现的目标吗?我不明白那个问题。不,先生,这个结构对我不起作用。由于我需要在child-changed-listeners上附加消息,然后在child-added-listener上附加接收者uid,所以它不会获取接收消息的人的uid。这就是我在问题中提到的。你能再告诉我一点你真正想要实现的目标吗?我不理解这个问题。