【发布时间】:2021-01-10 07:44:40
【问题描述】:
我一直在尝试通过从 Firebase 数据库中获取数据来使用 JS 制作一个简单的数学函数。 我们有两种类型——收入和支出。
这里最初是引用 Firebase 的代码 sn-p
let reference = firebase.database().ref("expenditure");
let reference1=firebase.database().ref("income");
这让我们可以创建两个不同的数据库,名称分别为 expenditure 和 income
现在,我创建了两个函数来遍历数据库中的元素并将其添加到变量中
这些函数应该分别返回支出和收入。
var income=0;
var expenditure=0;
function amount(data){
let expens = data.val();
let keys = Object.keys(expens);
console.log(keys.length);
for( let i=0;i<keys.length;i++){
let a =keys[i];
let amount_a = expens[a].Amount;
var p=parseInt(amount_a);
var expenditure=p+expenditure;
}
return expenditure;
}
function amount1(data){
let expens = data.val();
let keys = Object.keys(expens);
console.log(keys.length);
for( let i=0;i<keys.length;i++){
let a =keys[i];
let amount_a = expens[a].Amount;
var p=parseInt(amount_a);
var income=p+income;
}
return income;
}
如你所见,我声明了两个函数来返回收入和支出
现在,我在另一个名为 result() 的函数中调用了它们
function result(){
var a=reference.on("value",amount);
var b=reference1.on("value",amount1);
console.log(b-a);
}
result();
这应该返回我净额(收入-支出)
但是,我在 console.log 中获得了与 amount(data),amount1(data) 相同的功能,而不是返回收入和支出的值。
我尝试了几种方法,但无法弄清楚。
【问题讨论】:
-
你确定
reference.on("value",amount)返回一个数字吗?你也可以打印控制台像这样console.log({ a, b }) -
我猜它应该调用 amount() 函数。不然怎么调用 amount() 函数?
-
图片添加到最后一行的帖子
标签: javascript reactjs firebase-realtime-database