我有一个游戏,在该游戏中,两个客户端都能够通过向"Gameover" node 写信来确定"游戏结束"状态:
- gameId
- - gameUpdates
- - gameover
我将ChildEventListener附加到"gameID",当快照到来时,我确定快照的密钥并相应地执行操作.
由于游戏可以以不同的方式结束,我只想要第一次写到"Gameover"来计算,以确保游戏以相同的方式结束两个玩家.因此,在RTDB规则中,我为"Gameover"设置了!data.exists()
.
对于我的问题: 如果我对"Gameover"的写入被规则拒绝(其他玩家已经向该 node 写入了一些内容),那么我仍然会获得包含我写入的数据的本地快照,即使它从未写入数据库.
现在是I am aware of this answer by @puf,如果你用ServerValue.TIMESTAMP写东西,你会得到一个本地快照和一个实际快照.这是预期的行为,但我不会在这里写任何时间戳.
我想知道的是:这种行为是否与时间戳写入相同?有什么方法可以忽略本地快照吗?也愿意接受其他 idea 来实现这一点:)
提前感谢您的帮助!