我正试图在用户提交的"帖子"上创建一个类似Reddit/Hacker News的投票系统。我不想让用户为同一个帖子投票不止一次。防止用户使用Firebase的安全API进行此操作的最佳方法是什么?
一种方法是为每个帖子指定一个位置,然后为喜欢该帖子的用户ID指定子对象。例如CCD_ 1和CCD_。
然后,您可以有一个.validate
规则,当尝试将一个新的类添加到列表中时,首先检查https://<you>.firebaseio.com/posts/<post_id>/likes
是否已经有了该子项。因此,规则看起来像:(注:未测试)
"likes": {
".validate": "!data.hasChildren([newData.val()])",
},
(很高兴听到是否有更好的方法!)