我试图制作一个赌博网站模拟,我需要一个存储用户余额的变量。这会在他们下注时改变。
该变量被称为" userbalance"它在Firebase上设置为500。用户的赌注成功存储在firebase上。因此,我需要再次处理此下注值,并将其从" userbalance"中取出,从而更新其余额。
function storewager(){
var coinref = firebase.database().ref();
var coinwager = document.getElementById("coininput").value;
var userbalance =
coinref.child("coinbet").set(coinwager);
changeuserbal();
}
function changeuserbal(coinwager, userbalance){
var balref = firebase.database().ref().child('userbalance');
var coinwager = document.getElementById("coininput").value;
var userbalchg = balref - coinwager;
window.alert(balref);
balref.child("userbalance").set(userbalchg);
}
我无法理解为什么它在storewager中正常工作,而不是在changeuserbal中。
这是firebase数据库布局:
gambling-website-simulationaddclose
coinbet: "66" <--- this is the user bet, which is changed by storewager()
userbalance: 500 <--- I'm trying to take coinbet away from this
非常感谢你的帮助,因为当我能做到这一点时,我应该能够取得更多进展。
修改
我现在设法发送变量值,而不是名称To&#34; userbalance&#34;。但是,计算并不正确。我认为问题在于&#34; userbalance&#34;没有正确引用。
因此,&#34; userbalance&#34;只是赌注但是减去。
bal - coinwager = userbalchg ---&gt;这被上传到&#34; userbalance&#34;
0 - coinwager = userbalchg ---&gt;这就是我认为正在发生的事情
这是我的代码的更新部分:
function changeuserbal(coinwager){
var balref = firebase.database().ref().child("userbalance");
balref.once("value")
.then(function(snapshot){
var bal = snapshot.child("userbalance").val();
var coinwager = document.getElementById("coininput").value;
var userbalchg = bal - coinwager;
balref.set(userbalchg);
});
}