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

标签 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.database().ref('/complete').orderByChild('status').equalTo('Resolved').once('value')

我只想授予对状态值已解决的数据的访问权限。但我不断收到/完整:客户端无权访问所需数据

最佳答案

您的代码正在尝试从 /complete 读取,但您的规则未授予对 /complete 的任何读取访问权限。请记住rules don't filter data .

幸运的是rules can be used to authorize specific queries ,这就是您需要的:

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

使用这些规则,您的查询将被允许,但来自 /complete 的更广泛读取将被拒绝。

关于javascript - 尝试使用 id 访问数据时,firebase 规则中的通配符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212059/

相关文章:

javascript - 计算数组元素中的键

javascript - HighCharts - 单击图例后如何重新定位标签

javascript - firebase 函数将通知推送给特定用户

swift - 如何查询数千个值并只返回数组中的值 - Firebase Swift

java - 在 java 函数中使用 javascript 变量

javascript - MutationObserver 单击元素/类

firebase - 如何为我的 flutter 项目找到兼容的依赖版本? (Firebase_auth、cloud_firestore、intl、flutter_dialogflow_v2)

javascript - 在 React Native 中返回从 useEffect 中的异步函数返回的清理函数

node.js - 无法在 GAE 上部署 node.js 应用程序

android - 如何从 broadcastreceiver 使用 firebase 数据库