虽然模拟器显示它们已就位,但我无法使Firebase数据库中的安全规则正常工作。
一个简单的例子:
{
"rules": {
"items":{
"$itemid":{
".read":true,
".write":"newData.child('id').isNumber()"
}
}
}
}
对于上述规则,当我尝试在模拟器中发布带有文本值的项目时,会在' id'它会按预期给出正确的错误。
对于网址:/items/-sdsd123
对于数据:{"id":"MAC1", "name":"Macbook Pro"}
它在模拟器中给出了写入被拒绝的错误作为' id'不是数字。
然而,在发布规则并尝试从代码或浏览器数据编辑器后,它允许id为文本值。以下是:
var key = db.ref("/items").push().key;
db.ref('/items/' + key).set({"id":"MAC1", "name":"Macbook Pro"});
我遗漏了一些基本的但却无法解决的问题,请帮助。