读取成功时,Firebase规则写入失败

时间:2018-04-02 21:01:32

标签: android firebase firebase-realtime-database firebase-security-rules

我在我的实时数据库中有这些规则,并且无法弄清楚为什么只有.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"
  }
}

下图中突出显示的节点是我要比较的节点,以确保它们相等,以便为用户提供读/写访问权。

Database screenshot

我还注意到,由于上述读取规则,在我的应用中加载数据的速度已经放慢。现在,当用户登录时,数据不会立即显示在其Recyclerview中,并且需要关闭应用程序并在显示数据之前再次打开它(或导航到应用程序中的另一个视图并返回)。这样的安全规则会影响数据库查询性能吗?

谢谢!

0 个答案:

没有答案