我有一个火力地堡数据库以下规则:火力地堡数据库规则和PERMISSION_DENIED错误
{
"rules": {
"messages": {
"$message": {
".read": "true",
".write": "newData.child('uid').val() === auth.uid"
}
}
}
}
的数据结构是这样的:
我可以写入没有问题,但是当我尝试阅读时,出现以下错误:
Error: permission_denied at /messages: Client doesn't have permission to access the desired data.
我已阅读firebase文档,并且我的结构看起来与给出的示例相同。请,有人能告诉我这有什么问题吗?
请注意:在“消息”下移动读取规则确实解决了问题,但不是我想要的解决方案,因为我想根据消息数据(类似于写入规则)编写规则基本规则工作。我想用这样一个规则来结束:
{
"rules": {
"messages": {
"$message": {
".read": "data.child('uid').val() === auth.uid",
".write": "newData.child('uid').val() === auth.uid"
}
}
}
}
嗯..我从这样的结构开始,但我的问题是,我有两个用例;一个用户只能看到他们自己的消息,另一个用户在管理员看到所有消息。管理员查询需要能够通过诸如消息打开或关闭等属性进行过滤。当我试图用更嵌套的结构来做到这一点时,我发现编写管理查询是不可能的(太多的嵌套)。听起来像我回到了绘图板... :-( –
所以只有管理员可以看到所有的消息,所以用户只能看到他们的消息? – Callam
是的,这是正确的。我有一个令牌,我可以识别这个问题正在构造数据,所以我可以查询它并且用户可以阅读他们自己的消息。 –