如何为下面的 Firebase 数据结构编写规则?

How can I write the rule for the Firebase data structure below?

我想在 Firebase 中编写一条规则,当禁用设置为 false 时,只允许用户能够写入数据库。

我的数据库结构如下:

{
  "Users": {
    "UID": {
      "details": {
        "random key generated by push": {
          "disable": true,
        },
      }

要从安全规则中的另一个节点读取值,您必须知道该节点的确切路径。因此,除非您知道 "random key generated by push" 的值,否则无法从其上方节点之一的规则中读取该值。


这通常意味着您应该更改数据结构以在 UID 节点下的已知位置具有 disable 标志。例如:

{
  "Users": {
    "UID": {
      "disable": true,
      "details": {
        "random key generated by push": {
        },
      }

现在您可以像这样允许访问 UID 节点:

{
  "rules": {
    "Users": {
      "$uid": {
        ".read": "data.child('disable').val() === true"
      }
    }
  }
}