安全规则导致始终获得“权限被拒绝”

时间:2016-06-24 13:21:43

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

我觉得Firebase 3安全规则有问题。

我的规则如下:

{"rules":
  {
    "pages": {
      ".read": true,
      "$pageId": {
        ".read": true,
        ".write": "root.child('adminUsers').hasChild(auth.uid)"
      }
    },
    "adminUsers": {
      ".read": false,
      ".write": false
    }
  }
}

尝试添加设置页面对象

firebase.database().ref('/pages/-KL1TmkWWNUYsMqvTw1E').set({slug: 'rule'})

出现此错误(即使/adminUsers/-XXXX = true -XXXX是我的用户ID):

  

FIREBASE警告:设置为/ pages / -KL1TmkWWNUYsMqvTw1E失败:permission_denied

".write": "root.child('adminUsers').hasChild(auth.uid)"更改为".write": true后,效果正常。但那不是我想要的。

使用规则模拟器测试相同的东西,一切都很好。我输了。

1 个答案:

答案 0 :(得分:0)

感谢@adolfosrs要求我将数据库导出为JSON

我发现我用引号包装userId,导致了问题

library(ggplot2)
library(plotly)
d <- data.frame("a" = sample(1:50, 20, T), "b" = sample(1:50, 20, T), 
                        "col" = factor(sample(1:3, 20, T)))
        gg <- ggplot() + geom_point(aes(x = a, y = b, color = col), data = d)
        gg

plotly_build(gg)