Firebase规则-无法访问每个节点

金赫俊

我正在使用Firebase开发应用程序。我在Firebase上具有以下数据结构:

{
   rules: {
      "version": {
         "threads": {
            "$thread": {
               "noticeList": {
                   ".read": true,
                   ".write": true
               },
               "messages": {
                   ".read": "root.child('version/threads/' + $thread + '/users/' + auth.uid).exists()",
                   ".write": "root.child('version/threads/' + $thread + '/users/' + auth.uid).exists()"
               },
               "$other": {
                    ".read": "auth != null",
                    ".write": "auth != null"
               }
            }
         }
     }
}

每个线程都有一个子节点/users/,我想制定一个规则,只有包含的用户才能在该线程中读写消息。

noticeList添加新消息时,我还必须访问另一个条件但是,这些规则不起作用。如果“ $ thread”中还有其他节点规则,使用时我将无法获得任何响应

firebase.child("version/threads/" + $thread + "/noticeList").once("value", function(snapshot) {});

或者

firebase.child("version/threads").once("value", function(snapshot) {});

我该如何解决?

谢谢

弗兰克·范普菲伦

您的查询从以下位置开始:

firebase.child("version/threads/" + $thread + "/noticeList")

执行此查询时,Firebase会检查用户是否有权读取该节点。在这种情况下,用户没有使用,因此查询失败。

当涉及到Firebase安全规则时,这是人们常犯的错误。Firebase文档将其解释为“规则不是过滤器”,这正是您要尝试执行的操作。

不幸的是,对于您的情况,文档还解释了“规则级联”。从本质上讲,这意味着,如果您授予用户对的读取访问权限noticeList,则不能在较低级别上取消读取访问权限。

使此工作最简单的方法可能是为每个用户提供他们自己可以访问的通知索引。

version
  threads
    $thread
      userNoticeList
        <userid1>
          <messageid1>: true
          <messageid2>: true
        <userid2>
          <messageid1>: true
          <messageid3>: true

这是相当典型的数据非规范化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法访问多维列表规则的值

来自分类Dev

Firebase 安全规则访问 newData 节点名称

来自分类Dev

节点的一个属性的Firebase规则

来自分类Dev

Firebase数据库规则专用节点

来自分类Dev

我的Firebase规则如何访问不同的分片?

来自分类Dev

无法访问从Firebase返回的对象属性

来自分类Dev

Firebase功能无法访问Firestore数据

来自分类Dev

Firebase调用后无法访问的变量

来自分类Dev

无法访问Firebase旧项目

来自分类Dev

无法访问 Firebase 快照数据

来自分类Dev

yii规则管理器模块无法访问

来自分类Dev

如何使用Firebase规则授予对所有节点的读/写访问权限?

来自分类Dev

Firebase规则:如何根据用户角色限制访问

来自分类Dev

是否可以在Firebase规则中访问$ location变量的子级?

来自分类Dev

扑应用-Firebase公共访问安全规则

来自分类Dev

在Firebase Realtime数据库规则集中访问对象属性

来自分类Dev

Firebase 规则可授予对动态用户列表的读取访问权限

来自分类Dev

无法使用规则写入 Firebase 数据库

来自分类Dev

Firebase:Permission_denied-无法访问newData.child()

来自分类Dev

我无法访问从Firebase检索到的javascript对象的值

来自分类Dev

Firebase Jira集成错误-无法访问Jira实例

来自分类Dev

我有Firebase用户ID,但无法访问名称

来自分类Dev

无法访问 firebase orderByChild 查询结果中的值

来自分类Dev

Firebase 云功能;无法访问 Firestore 数据库

来自分类Dev

如何修改503 htaccess规则,以避免出现“ Googlebot无法访问您的网站”错误?

来自分类Dev

尽管已根据规则配置了NAT,Internet网关,但AWS VPC仍无法访问Internet

来自分类Dev

尽管已根据规则配置了NAT,Internet网关,但AWS VPC仍无法访问Internet

来自分类Dev

无法访问XML节点中的@attributes

来自分类Dev

无法访问链接列表的相邻节点

Related 相关文章

  1. 1

    无法访问多维列表规则的值

  2. 2

    Firebase 安全规则访问 newData 节点名称

  3. 3

    节点的一个属性的Firebase规则

  4. 4

    Firebase数据库规则专用节点

  5. 5

    我的Firebase规则如何访问不同的分片?

  6. 6

    无法访问从Firebase返回的对象属性

  7. 7

    Firebase功能无法访问Firestore数据

  8. 8

    Firebase调用后无法访问的变量

  9. 9

    无法访问Firebase旧项目

  10. 10

    无法访问 Firebase 快照数据

  11. 11

    yii规则管理器模块无法访问

  12. 12

    如何使用Firebase规则授予对所有节点的读/写访问权限?

  13. 13

    Firebase规则:如何根据用户角色限制访问

  14. 14

    是否可以在Firebase规则中访问$ location变量的子级?

  15. 15

    扑应用-Firebase公共访问安全规则

  16. 16

    在Firebase Realtime数据库规则集中访问对象属性

  17. 17

    Firebase 规则可授予对动态用户列表的读取访问权限

  18. 18

    无法使用规则写入 Firebase 数据库

  19. 19

    Firebase:Permission_denied-无法访问newData.child()

  20. 20

    我无法访问从Firebase检索到的javascript对象的值

  21. 21

    Firebase Jira集成错误-无法访问Jira实例

  22. 22

    我有Firebase用户ID,但无法访问名称

  23. 23

    无法访问 firebase orderByChild 查询结果中的值

  24. 24

    Firebase 云功能;无法访问 Firestore 数据库

  25. 25

    如何修改503 htaccess规则,以避免出现“ Googlebot无法访问您的网站”错误?

  26. 26

    尽管已根据规则配置了NAT,Internet网关,但AWS VPC仍无法访问Internet

  27. 27

    尽管已根据规则配置了NAT,Internet网关,但AWS VPC仍无法访问Internet

  28. 28

    无法访问XML节点中的@attributes

  29. 29

    无法访问链接列表的相邻节点

热门标签

归档