我有一个充满了用户的数据库。每个用户都有一个分数值,表示他们在排行榜中的分数。现在,我可以轻松使用firebase安全规则来阻止其他人更改该用户的分数。但是,如何在不阻止程序更新用户分数的情况下阻止用户在数据库中编辑自己的分数?问题是在浏览器控制台中编辑用户数据很容易。怎么能阻止这种情况?
以下是设置用户得分值的代码:
function setUserValue(uid, type, value) {
var userRef = new Firebase("https://bragr.firebaseio.com/users/" + uid
+ "/" + type);
userRef.transaction(function(currentValue) {
return value;
});
}
如果我这样调用函数:
setUserValue(user.id, "score", 10);
数据库中的用户分数设置为10。应该允许这样做。但是我试图阻止用户只需将其输入控制台并破解他们的分数。
以下是DB的结构:
355e3361-a124-491e-8c2b-239893b5cf62:
--- email: "test@test.com"
--- score: 50
--- username: "Stacker"