JavaScript变量在函数内部不会发生变化

时间:2018-04-03 18:21:48

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

在为Firebase函数编写一些函数时遇到了问题。我想找到存储在PFM中的具有最高值的用户并将其名称保存在变量中但变量不会更改。我做错了什么?

这是我的代码:

var highestPFM = 0;
var userToSend = "";    

db.collection("users").get().then((snapshot) => {
        snapshot.forEach((doc) => {
        var data = doc.data();
            if(highestPFM > data["pfm"]){
                highestPFM = data["pfm"];
                userToSend = doc.id;
            }
        });
        console.log(prefixSendBottle + "User with highest PFM: " + userToSend);
        return userToSend;
    }).catch((err) => {
        response.send(err);
        console.log(err);
    });

1 个答案:

答案 0 :(得分:2)

您正在检查if(highestPFM > data["pfm"]){ ...假设您只有pfm的+ ve值,此条件永远不会成立,因此highestPFM的值永远不会改变。

您需要将条件更改为if(data["pfm"] > highestPFM){