【问题标题】:Allow Read and write for all child except one允许除一个之外的所有孩子读写
【发布时间】:2017-07-21 19:53:55
【问题描述】:

我正在为我的项目使用 firebase

现在我想自定义我的规则

默认规则是:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

允许为授权用户读写所有数据

现在我想允许授权用户读取和写入所有数据

我也想添加这个

{
  "rules": {
      "visits": {
      "$visit_id": {
        "mister_id": {
          ".write": "data.val() == ''"
        }
      }
    }
  }

}

现在如何添加这两条规则

【问题讨论】:

    标签: android firebase firebase-realtime-database rules


    【解决方案1】:

    我认为你需要这样的东西:

    {
        "rules": {
            ".read": "auth != null",
            ".write": "auth != null",
            "visits": {
                "$visit_id": {
                    "mister_id": {
                        ".validate": "(data.val() == null) || (data.isString() && (data.val().length == 0))"
                    }
                }
            }
        }
    }
    

    您可以通过Firebase Datase Rules documentation 找到您需要的所有内容。

    【讨论】:

    • 不,不允许写在任何孩子身上,谢谢关注
    • 好的,我只想允许对所有节点进行读写(授权),但不允许更新“visit/visit_id/mister_id”的值!= ' ' ;
    • its works for 1st time when I try on exist data but when I add new data it didnt 工作
    【解决方案2】:

    尚未尝试,但可能是另一种解决方案:

    {
        "rules": {
            ".read": "auth != null",
            ".write": "auth != null",
            ".validate": "newData.hasChildren(['visit_id', 'mister_id'])"
        }
    }
    

    【讨论】:

    • 好的,我只想允许对所有节点进行读写(授权)但是如果存在值值,则不允许更新“visit/visit_id/mister_id”!='';
    • 你能帮帮我吗/
    • 你的意思是空字符串吗?还是空?如果您的意思是空的,您可以将 (&& newData.val().length > 0) 条件添加到上面给出的验证部分。支持的字符串操作见firebase.googleblog.com/2013/08/…
    • 好的,我试试,谢谢
    猜你喜欢
    • 2017-09-08
    • 2018-11-20
    • 1970-01-01
    • 2016-07-22
    • 2014-11-09
    • 2011-10-23
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    相关资源
    最近更新 更多