【问题标题】:Firebase Rule for Data ValidationFirebase 数据验证规则
【发布时间】:2016-03-20 06:43:55
【问题描述】:

假设数据结构如下所示,我想要一个禁止添加新车品牌的规则,例如用户不能添加“toyota”。所以,我需要 .validate 以使 .update 必须与现有的 make 匹配。

我尝试过将 $cars 与 ".validate": "newData.val().contains($cars)" 以及所有其他方式一起使用,但都没有成功。任何帮助表示赞赏。

我的代码是:

function setModel(model,make,key){
    if (model && make && key){
        var carsRef = ref.child('cars');
        var makeRef = carsRef.child(make);
        var modelRef = makeRef.child(model);
        var obj = {};
        obj[key] = true;           
        modelRef.update(obj, onComplete);
    }
}

firebase 看起来像:

{
"cars" : {
   "chevrolet" : {
      "silverado" : {
         "id192874623" : true,
         "id786766663" : true
      }
   },
   "ford" : {
      "taurus" : {
         "id736273627" : true
      }
   },
   "honda" : {
      "accord" : {
         "id635263535" : true
      }
   }
}}

【问题讨论】:

  • 如果您已经尝试编写安全规则,请将它们添加到您的问题中。它可以让我们看到您可能做错了什么,而不必从头开始。

标签: javascript firebase firebase-realtime-database


【解决方案1】:

禁止添加新的汽车品牌:

"cars": {
  "$brand": {
    ".validate": "data.exists()"
  }
}

这在文档的existing data vs new data 部分中有介绍。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2020-05-10
    • 1970-01-01
    • 2018-08-25
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多