【问题标题】:Obtain average of fire base function, Find the average of the desired nodes获取火基函数的平均值,找到所需节点的平均值
【发布时间】:2019-03-31 05:12:47
【问题描述】:

我想从实时数据库中的数据库中平均我想要的字段并将它们放在另一个节点上

exports.taverage = functions.database.ref('/User/tsetUser/monthQuit/{pushId}')
    .onCreate((snapshot, context) => {
        return admin.database().ref('/User/tsetUser/monthQuit/{pushId}/quitTime').once('value')
            .then(function(snapshot) {
                let sum=0;
                snapshot.forEach(child => {
                    sum = sum + child.val();
                })
                let avg = sum / snapshot.numChildren();

                return admin.database().ref('/User/tsetUser/inform/standardQuit').set(avg);
            });
    });

错误:Reference.set 失败:第一个参数在 propertyenter image description here 中包含 NaN

【问题讨论】:

    标签: javascript firebase firebase-realtime-database google-cloud-functions


    【解决方案1】:

    我的理解是.numChildren() 实际上应该是.getChildrenCount(),如in the documentation 所述。

    另外,请考虑通过执行以下操作来修改您的代码以解决“除以零”的情况:

    functions.database.ref('/User/tsetUser/monthQuit/{pushId}')
    .onCreate((snapshot, context) => {
        return admin.database().ref('/User/tsetUser/monthQuit/{pushId}/quitTime').once('value')
        .then(function(snapshot) {
    
            /* Get children could via getChildrenCount() */
            let divisor = snapshot.getChildrenCount();
    
            /* Ensure divisor is greater than zero to avoid
            divide by zero case */
            if(divisor > 0) {
    
                let sum=0;
    
                snapshot.forEach(child => {
                    sum = sum + child.val();
                })
                let avg = sum / divisor;
    
                return admin.database().ref('/User/tsetUser/inform/standardQuit').set(avg);
            }
    
        });
    });
    

    【讨论】:

    • 错误:函数未正确部署。这是一个获取附件图像中几个quitTime的平均值并将其放入standardQuit的代码。
    猜你喜欢
    • 2021-12-22
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多