Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试访问id为的数据时,firebase规则中的通配符不起作用_Javascript_Firebase_Firebase Realtime Database_Firebase Security - Fatal编程技术网

Javascript 尝试访问id为的数据时,firebase规则中的通配符不起作用

Javascript 尝试访问id为的数据时,firebase规则中的通配符不起作用,javascript,firebase,firebase-realtime-database,firebase-security,Javascript,Firebase,Firebase Realtime Database,Firebase Security,当我在firebase规则中使用通配符时,为什么不返回数据 我正在尝试使用firebase规则中的ID授予对数据的访问权限。我将数据存储在complete/-docid中/ Firebase规则: { "rules": { "complete": { "$completeid": { ".read": "data.child('status').val() === 'Resolved'", ".write": true } } } } 在我的代码中检索数据,如下

当我在firebase规则中使用通配符时,为什么不返回数据

我正在尝试使用firebase规则中的ID授予对数据的访问权限。我将数据存储在complete/-docid中/

Firebase规则:

{
"rules": {
"complete": {
  "$completeid": {
    ".read": "data.child('status').val() === 'Resolved'",
    ".write": true
   }
  }
 }
}
在我的代码中检索数据,如下所示:

firebase.database().ref('/complete').orderByChild('status').equalTo('Resolved').once('value')

我只想授予对状态值已解析的数据的访问权限。但我一直在获取/完成:客户端没有访问所需数据的权限

您的代码正在尝试从
/complete
读取,但您的规则不授予对
/complete
的任何读取权限。记住这一点

幸运的是,这正是您在这里需要的:

{
  "rules": {
    "complete": {
      ".read": "query.orderByChild == 'status' && query.equalTo == 'Resolved'",
      "$completeid": {
        ".write": true
      }
    }
  }
}

使用这些规则,您的查询是允许的,但是从
/complete
中更广泛的阅读将被拒绝。

谢谢。但是您对这样的规则有什么看法:
“query.orderByChild=='status'和&query.equalTo=='Resolved'| | query.orderByChild=='userId'和&query.equalTo=='auth.uid | | root.child('admins').child(auth.uid).child('role').val()=='admin'
?我一直在尝试这个,但它似乎仍然被拒绝。让我们一次只回答一个问题。我写的规则应该涵盖你问题中的问题。你试过了吗?有效吗?是的,第一个有效:
”。读:“query.orderByChild=='status'和&query.equalTo=='Resolved'