Node.js google云函数-firestore查询快照大小返回未定义

Node.js google云函数-firestore查询快照大小返回未定义,node.js,firebase,google-cloud-firestore,Node.js,Firebase,Google Cloud Firestore,我这里有一个google函数,其中存储onFinalize触发器在firestore db中执行2项操作 将元素详细信息添加到集合元素中 获取元素集合的大小 为什么我的snapshot.size返回值未定义 控制台日志快照返回正确的阵列结果 exports.elementChange = functions.storage.object().onFinalize((object) => { var element = { name: object.name,

我这里有一个google函数,其中存储onFinalize触发器在firestore db中执行2项操作

  • 将元素详细信息添加到集合元素中
  • 获取元素集合的大小
  • 为什么我的snapshot.size返回值未定义

    控制台日志快照返回正确的阵列结果

    exports.elementChange = functions.storage.object().onFinalize((object) => {
    
    
        var element = {
            name: object.name,
            time: object.updated
        }
    
    
        db.collection('elements').doc(object.name).set(element)
        .then(db.collection('elements').get())
        .then((snapshot) => {
    
            console.log(snapshot);
    
            console.log("current size is "+snapshot.size);
    
            return console.log('element total count updated in db'); 
    
        })
        .catch(err => (console.log('Error when finalise element: '+ err)))
    
        // return console.log('finished finalise element');
    
    })
    

    我不确定这是否是问题的原因,但您缺少一个顶级
    返回值。将代码更改为
    return db.collection('elements').doc(object.name).set(element).
    ,以确保您的代码不会在写入和读取完成之前中止。我不认为这是原因,我认为这与链接承诺有关。如果我不将查询链接到set(element)查询下,它将正常工作。但我不明白为什么。