【问题标题】:How do I give read/write access to all nodes with Firebase rules?如何使用 Firebase 规则授予对所有节点的读/写访问权限?
【发布时间】:2015-06-13 03:08:51
【问题描述】:

默认设置提供完全访问权限:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

为了测试我对 Firebase 指南和文档中规则编写的理解,我(现在退回到)试图通过为 4 个父节点编写规则来达到相同的结果。

如果有区别,前两个节点只有值,没有子节点。 **Sidequest:它们仍然被称为节点吗?

下面的规则导致与上面的规则更改为假读写时相同的行为。

    {
  "rules": {
    "myNode1": { 
      ".read" : true,
      ".write" : true
    },
    "myNode2" : {
      ".read" : true,
      ".write" : true
    },
    "myNode3" : {
      ".read" : true,
      ".write" : true
    },
    "myNode4" : {
      ".read" : true,
      ".write" : true
    }
  }
}

我的规则有什么问题?

更新/上下文:

我有一个 authDataCallback 在这里停止运行(在 if (authData) { 子句中):

var ref = new Firebase("https://<my>.firebaseio.com")

ref.once("value", function(snapshot){ 

发现如果我将 ref var 更改为更具体的内容:var ref = new Firebase("https://&lt;my&gt;.firebaseio.com/myNode1"),authDataCallback 将完整运行。

当然没有必要生成整个数据库的快照;这是获取我需要的数据的一种混乱方式。我已经更新了,但是考虑到我对整个数据库进行了读写操作,我仍然对为什么规则阻止回调感到困惑。

【问题讨论】:

  • 这些只是规则,据我所知是非常有效的规则。为了能够告诉您出了什么问题,您还应该显示您正在尝试做什么(可能执行某种形式的查询/读取操作)、您期望的结果是什么以及您得到的结果。
  • @FrankvanPuffelen 我添加了一些上下文。
  • 完美,这确实是缺少的。而杰的回答是正确的:在你的第二组规则中,用户无法读取根节点,所以这个监听器不会起作用。这不是很直观,我同意。我们在文档中扩展了解释,但仍然有很多人遇到它。 firebase.com/docs/security/guide/…
  • 现在我很清楚了。感谢您和杰的时间!

标签: firebase rules


【解决方案1】:

我认为这是基于提供的信息的答案:

您发布的两组规则不同。第一组

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

允许每个人在您的firebase 中对每个节点(包括父节点)进行读写访问

https://<my>.firebaseio.com

第二组规则允许每个人访问您的 firebase 引用中的特定节点,但阻止访问所有其他节点,包括访问父节点。在更新中,代码试图读取没有为其定义规则的父节点,因此默认情况下读写都是错误的。

假设你有以下结构:

https://whirlygig.firebaseio.com

Whirlygig
  someRandomData: "3.141"
  otherRandomData: "6.02"
  myNode1
    firstName: "first"
    lastName: "last"
  myNode2
    first: "first"
    last: "last"

通过您的第一组规则,每个人都可以访问 someRandomData 以及 myNode1、myNode2 等。

使用第二组规则,每个人只能访问 myNode1 和 myNode2,但不能访问 someRandomData

【讨论】:

    猜你喜欢
    • 2014-01-29
    • 2017-01-25
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 2021-10-20
    • 2020-12-25
    相关资源
    最近更新 更多