使用Firebase安全规则,我怎样才能阻止用户多次采取行动(例如,提升帖子)?

时间:2014-04-16 22:58:37

标签: firebase angularfire firebase-security

我正在尝试在用户提交的“帖子”上创建一个类似Reddit / Hacker News的投票系统。我不想让用户多次投票给同一个帖子。使用Firebase的安全API阻止用户执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

一种方法是为每个帖子设置一个位置,然后为孩子提供喜欢该帖子的用户ID。例如。 https://<you>.firebaseio.com/posts/<post_id>https://<you>.firebaseio.com/posts/<post_id>/likes/<user_id>

然后,您可以拥有一个.validate规则,当尝试向列表添加推送新内容时,首先检查https://<you>.firebaseio.com/posts/<post_id>/likes是否已有该子项。所以规则看起来像:(注意:未经测试)

"likes": {
  ".validate": "!data.hasChildren([newData.val()])",
},

(很高兴听到有更好的办法在那里做到这一点!)