当我在 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/