我正在玩firebase,存储用户博客帖子,以及喜欢和不喜欢的数量,
我正在邮寄
/posts/$uid/$key
(例如:/posts/XFSDFSFSDFSDF/-KKm1gBQRivx1x-thh8m
)
要查询所有帖子,我还会在/timeline/$key
中存储相同的数据
(例如:/timeline/-KKm1gBQRivx1x-thh8m
)
类似于喜欢和不喜欢,我的安全规则是这样的。
{
"rules": {
".read": true,
"posts":{
"$uid":{
".write": "$uid === auth.uid"
}
},
"timeline":{
"$key":{
".validate": "root.child('posts/'+ auth.uid +'/'+$key).exists()",
".write": "auth != null"
}
},
"user-likes": {
"$uid":{
"$post":{
".write": "$uid === auth.uid",
".validate":"root.child('timeline/'+$post).exists() && newData.child('type').exists()"
}
}
},
"likes": {
"$post":{
"$key":{
".validate": "root.child('user-likes/'+ auth.uid +'/'+$post+'/'+$key+'/ type').val()==newData.child('type').val()",
".write": "auth != null",
".indexOn": ["type"]
}
}
}
}
}
两次保存数据有问题吗?还有其他更好的解决方案吗?