0

我目前正在 Firebase 上开发一个使用 Firepad 作为工具之一的网络应用程序。

在我尝试使用规则保护实时数据库之前,一切都运行良好。这是新规则

 {
  "rules": {
        "allmembers":{
        ".read":"auth != null",
          ".write":"auth != null && !data.exists() && newData.exists()"
      },

  "orgs":{

    "$org":{ 
      ".read": "data.child('members/'+auth.uid).exists()",
        ".write": "data.child('members/'+auth.uid).exists()",

          "info":{
          }, 
         "members":{
          },

        "processes":{
           "$process":{
                "bpm":{
              },
              "firepad":{
              }
           }   
        }
    }
  }
  }
}

简而言之,这个想法是用一个单一的值来保存每个成员的一般记录,该值是他们所属组织的 ID,然后用它来让他们访问公司的数据。

这些规则适用于设置/获取数据,$org例如修改“成员”或“bpm”,除了orgs/$org/processes/$process/firepad.

那么为什么控制台给我这个警告并且firepad无法在firebase数据库中读写数据呢?

FIREBASE WARNING: set at /orgs/1/processes/processus/firepad/users/0xcNuXRLk0g2fedKfH35qLFxy9R2/cursor failed: permission_denied

编辑:这里是我目前使用和工作的例子。但是,有了规则".read":true,每个人都可以访问其他组织的 Firepad 吗?

{  
  "rules":{  
    "orgs":{  
      "$org":{  
        ".read":"data.child('members/'+auth.uid).exists()",
        ".write":"data.child('members/'+auth.uid).exists()",
        "info":{  

        },
        "members":{  

        },
        "processes":{  
          "$process":{  
            "bpm":{  

            },
            "firepad":{  
              "history":{  
                ".read":true
              },
              "checkpoint":{  
                ".read":true
              }
            }
          }
        }
      }
    }
  }
}
4

1 回答 1

0

看起来您的路径中有一个错误的“进程”:

/orgs/1/进程/进程/火板/用户/0xcNuXRLk0g2fedKfH35qLFxy9R2/光标

于 2016-08-31T15:21:54.397 回答