JavaScript变量不会在功能内部变化



在为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);
    });

您正在检查if(highestPFM > data["pfm"]){ ...假设您只有pfm的 VE值,此条件永远不会是真实的,因此highestPFM的值永远不会更改。

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

最新更新