我在我的实时数据库中有这些规则,并且无法弄清楚为什么只有.write规则失败,而.read成功。除了“.write”和“.read”之外,写规则和读取规则都是相同的,所以如果一个工作,那么另一个不应该吗?
在“用户”节点中,所有用户都有一个homesteadId值,我正在尝试确定==对于他们正在尝试编辑的Homesteads节点下的uid。
"Homesteads": {
"$uid": {
".write": "root.child('Users').child('auth.uid').child('homesteadId').val() == $uid"
,".read": "root.child('Users').child('auth.uid').child('homesteadId').val() == $uid"
}
}
下图中突出显示的节点是我要比较的节点,以确保它们相等,以便为用户提供读/写访问权。
我还注意到,由于上述读取规则,在我的应用中加载数据的速度已经放慢。现在,当用户登录时,数据不会立即显示在其Recyclerview中,并且需要关闭应用程序并在显示数据之前再次打开它(或导航到应用程序中的另一个视图并返回)。这样的安全规则会影响数据库查询性能吗?
谢谢!