【发布时间】:2017-07-28 22:21:57
【问题描述】:
我有一个非常简单的 Firebase 数据库,只有一个条目“async-testing/companies:0”。
我有以下 firebase 规则,如果 "companies" 未定义,则将其设置为 0,否则如果它比 "companies" 的当前值大 1,则允许写入:
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"async-testing": {
"companies": {
".validate": "(data.exists() && (newData.val() === data.val() + 1)) || (!data.exists() && newData.val() == 0)"
}
}
}
}
但是,当我尝试在 Firebase 模拟器中将“公司”设置为 1 时,它不起作用:
更奇怪的是,当我将 Firebase 规则设置为仅在 "companies" 未定义时才接受写入时,它可以正常工作:
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"async-testing": {
"companies": {
".validate": "!data.exists()"
}
}
}
}
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
你能告诉我们错误详情吗
-
我刚试过,效果很好..
-
嗯,很奇怪。我又试了一次,还是不行。我还尝试使用真实请求写入 db,并且我尝试的每个查询都经过(包括 {"companies": 3} 之类的内容)
-
您的数据库中没有拼写错误?在公司还是异步测试?
标签: firebase firebase-realtime-database firebase-security