【发布时间】:2016-12-21 00:53:02
【问题描述】:
我是 firebase 的新手,我想知道如何找出有关 hasChildren() RuleDataSnapshot 的问题以及如何创建验证数据。
数据库样本:
{
"visitors" : {
"-KP4BiB4c-7BwHwdsfuK" : {
"mail" : "aaa@mail.com",
"name" : "aaa",
}
.....
}
规则:
{
"rules": {
"visitors": {
".read": "auth != null",
".write": "auth.uid != null",
"$unique-id": {
".read": "auth != null ",
".write": "auth != null",
".validate": "newData.hasChildren(['name','mail'])",
}
}
}
}
据我所知,如果我想创建数据,数据字段必须具有相同的名称才能通过规则验证。 例如 : 如果我更改每个“名称”的“名称”并且我尝试使用他们的孩子创建一个新节点,则该规则适用于我所能理解的。 我想知道 ¿ 如果我手动添加要创建的新字段会发生什么?
例如:
//Add extra fields which are not actually present
var data = {name : "xxx",mail:"xxx@mail.com",extra1:222,extra:333};
firebase.database().ref('visitors/').push(data);
结果是:
"visitors" : {
"-KP4BiB4c-7BwHwdsfuK" : {
"mail" : "aaa@mail.com",
"name" : "juan",
"extra1":222,
"extra2":333
}
}
所以我的问题是如何避免为每个节点创建额外的子节点?我想规则做到了。
提前致谢。
【问题讨论】:
标签: validation firebase rules