我正在构建一个非常简单的基于JavaScript的Firebase应用程序,每当我的网页加载时,该应用程序会将键值增加1。我不希望任何身份验证摩擦,因此要使用开放数据库或限制为匿名身份验证的数据库。所以,举个例子:
$(document).ready(function() {
// after config and initialize...
var fb = firebase.database();
var fbCount = fb.ref("count");
fbCount.transaction(function(current) {
return current + 1;
});
});
在任何一种情况下,据我所知,没有什么可以阻止任何可以访问该页面的人复制我的代码(包括我的初始化配置)并在他们自己的服务器上使用它 - 通过调整 - 不仅增加值(上面的fbCount
),但是要以他们喜欢的任何其他方式更改代码(例如,让它们将值递增100,1000,或者将其完全改为其他内容)。
我的进一步理解是,处理这种潜力的最佳方法是通过安全规则。所以我想弄清楚的是,是否有一种方法,通过安全规则,限制任何写入仅增加1当前值?
如果没有,我应该调查另一种方法吗?
答案 0 :(得分:5)
您需要使用predefined variables。您的验证规则将类似于此(在您要保护的字段的位置):
".validate": "newData.val() == data.val() + 1"