gpt4 book ai didi

javascript - Firebase 规则保护自动增量计数器?

转载 作者:行者123 更新时间:2023-12-02 20:49:12 25 4
gpt4 key购买 nike

我的 firebase 中有一个计数器来计算每个帖子的点赞数。

var databaseRef = firebase.database().ref('/posts/').child(pid).child('likes');
databaseRef.transaction(function(count) {

因此,在将其插入到 likes/postid/userid json 中后,这将在 posts/likes 中的每个赞中添加 +1。统计点赞数。

我为此制定了一条规则,每次允许计数+1:

   "likes": {
".write": "newData.isNumber() &&
((!data.exists() && newData.val() === 1) || newData.val() === data.val()+1)"
},

它可以避免某人一次在帖子中添加 1000 个赞,但不能保护某人运行每秒插入 +1 的脚本...对此有什么解决方案吗?如何保护 firebase 规则中的计数器?

最佳答案

如果从前端执行计数器节点增量,则需要为用户分配写访问权限。没有办法避免一些恶意用户增加它。

一种解决方案是在云功能中实现计数器更新。 Cloud Functions 在后端执行并绕过所有安全规则(由于它们在后端运行,因此被视为“privileged environments ”)。 因此您可以拒绝对计数器节点的任何写访问。

您应该使用在更新帖子时触发的云函数,请参阅https://firebase.google.com/docs/functions/database-events

关于javascript - Firebase 规则保护自动增量计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61657102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com