【问题标题】:Will child_added still work if some entries are restricted by the security rules?如果某些条目受到安全规则的限制,child_added 是否仍然有效?
【发布时间】:2019-09-12 05:50:54
【问题描述】:

我有一个指向 privateMessages 的引用,如下所示:

messagesRef: firebase.database().ref("privateMessages")

下面是/privateMessages中任何child_added事件的监听函数:

this.state.messagesRef.on("child_added", snap => {
...
})

对于安全规则,并非 /privacyMessages 中的所有记录都可供特定登录用户访问。那么在这种情况下,监听器功能还会起作用吗?我已经尝试过,但似乎监听器函数没有被执行。请让我知道哪里出了问题以及如何解决。谢谢!

【问题讨论】:

    标签: javascript firebase-realtime-database firebase-security


    【解决方案1】:

    在您的代码中,messagesRef 上的侦听器将被拒绝,除非用户对 messagesRef 具有完全读取权限。

    重要的是要自己意识到security rules don't filter data。他们只是确保所有访问都被授权。在您的场景中,只有当用户对所有 messagesRef 具有读取权限时,才会授权访问。

    如果您希望用户只能读取数据的子集,您需要做两件事:

    1. 仅读取该数据的查询。
    2. 只允许数据查询的安全规则。

    query based rules 上的文档对此进行了描述,其中还包括一个有用的示例,包括代码和规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2020-08-21
      • 1970-01-01
      相关资源
      最近更新 更多