Firebase规则:我可以约束一个字段仅在另一个字段也在更改时更新吗?
我试图建立一个有趣的,不是真正的钱“赌博”网站。基本设置如下:Firebase规则:我可以约束一个字段仅在另一个字段也在更改时更新吗?,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我试图建立一个有趣的,不是真正的钱“赌博”网站。基本设置如下: { users: { $user_id: { balance: <number>, wagers: { $wager_id: { wager: <number>, bet_id: <string>, created_at: <number>, <etc> }
{ users: {
$user_id: {
balance: <number>,
wagers: {
$wager_id: {
wager: <number>,
bet_id: <string>,
created_at: <number>,
<etc>
}
}
}
}
所以你可以看到这一行,我试图确保赌注
发生了变化
data.parent().child('wagers').val() !== newData.parent().child('wagers').val()
但它不起作用,这个语句总是返回true
理想情况下,我想从余额
的上下文中了解不断变化的赌注的$wager\u id
。即使上述规则起作用,仍有人可以更改在$wager\u id
的创建的,并进行验证。我曾考虑过在同一笔交易中(比如在user/$user\u id/changing\u wager
)将其填充到一个临时位置,然后立即将其删除,但这似乎真的很愚蠢
谁能给我点化一下吗D
(需要明确的是:这只是一个游戏,没有什么真正的利害关系,每周都会有一个服务器进程,可以运行数学并捕获作弊者。但是,如果我能找到一个使用纯Firebase验证规则的解决方案,那将是非常棒的。)想想看,我可能会使用一个临时的id存储位置,可以从家长那里访问,比如“更改\u打赌\u id”。想知道是否有不涉及额外db调用的解决方案。
data.parent().child('wagers').val() !== newData.parent().child('wagers').val()