从功能中提前打破

问题描述 投票:1回答:1

我正在使用firebase,我正在尝试创建用户余额。当用户购买某物时,该值将从其余额中取走。

这当前可以正常工作,并在firebase数据库上进行更新。但是,我似乎无法摆脱计算新余额的循环。因此,重复相同的计算。

我尝试过使用breakreturn,似乎无法到达任何地方。

function changeuserbal(coinwager){
var dbRoot = firebase.database().ref();
dbRoot.on("value", snap => {
    var cData = snap.val();
    var cBet = cData.coinbet;
    var uBal = cData.userbalance;
    var BalUp = uBal-cBet;
    alert(BalUp);
    firebase.database().ref("userbalance").set(BalUp);
});
}

我假设因为firebase.database().ref("userbalance").set(BalUp);重新启动循环。我试过把它放在外面,但我似乎无法在循环之外传递BalUp。

javascript database function firebase firebase-realtime-database
1个回答
3
投票

on()设置一个监听器,持续响应数据库中某个位置的更改。在您将其删除之前,可能会重复调用它。如果您只想读取一次数据,请改用once()

© www.soinside.com 2019 - 2024. All rights reserved.