Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase规则:我可以约束一个字段仅在另一个字段也在更改时更新吗?_Firebase_Firebase Realtime Database_Firebase Security - Fatal编程技术网

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()