从函数

时间:2017-12-20 15:25:15

标签: javascript database function firebase firebase-realtime-database

我正在使用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。

1 个答案:

答案 0 :(得分:3)

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