我的数据结构如下:
{
"users" : {
"31J59dq1clZ3inHMzoopiigsEg63" : [ {
"name" : "Lanchana",
"timestamp" : 1516916245423,
"uid" : "31J59dq1clZ3inHMzoopiigsEg63",
"userEmail" : "*****@gmail.com",
"total-stars" : 123
} ]
}
}
并解雇如下规则:
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid && auth != null",
".write": "!data.exists() || data.child('uid').val() ==
auth.uid && auth != null",
}
}
}
}
我可以成功添加新数据,但我无法对现有数据进行任何更新。例如:如果我只想根据uid更新特定用户的总星数,我该如何指定写入和验证规则?
答案 0 :(得分:3)
您的数据结构似乎有一个规则中缺少的图层0
。如果您的实际JSON中确实存在该图层,那么您也希望在规则中包含该图层:
{
"rules": {
"users": {
"$uid": {
"$postid": {
".read": "$uid === auth.uid && auth != null",
".write": "!data.exists() || data.child('uid').val() ==
auth.uid && auth != null",
}
}
}
}
我在这里调用了图层$postid
。您可能希望使用更能反映图层所代表内容的名称。