【问题标题】:"Error: could not handle the request" google cloud functions error“错误:无法处理请求”谷歌云功能错误
【发布时间】:2019-10-12 00:56:04
【问题描述】:

我正在尝试使用云功能从 Firestore 获取多个文档。我正在使用打字稿并尝试将所有文​​档一个一个地推送到一个对象数组中,然后在将所有文档放入一个数组后将其作为对客户端的响应发送。但是当我尝试在浏览器中运行它时出现错误“获取文档时出错:TypeError:无法读取未定义的属性'push'”。

函数代码如下:

export const getMultiData = functions.https.onRequest((request, response) 
=> {
let dataArray: object[];
const promise = admin
    .firestore()
    .collection("collection")
    .get();
const p = promise.then(querySnapshot => {
    querySnapshot.forEach(doc => {
      dataArray.push(doc.data());
    });
    response.send(dataArray);
  });
  p.catch(error => {
      response.status(500).send("Error getting documents: " + error);
  });
});

【问题讨论】:

    标签: typescript google-cloud-firestore google-cloud-functions


    【解决方案1】:

    doc.data 是一个方法,而不是一个属性。你会想用括号来调用它。

    dataArray.push(doc.data());
    

    【讨论】:

    • 我已经编辑了这个问题。请再检查一次。我对代码做了一些更改,现在得到了不同的错误。现在错误是 TypeError: Cannot read property 'push' of undefined
    • 需要给dataArray赋值一个数组值。 dataArray = []
    • 好的,如果您觉得回答对您有帮助,请接受正确的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2019-08-30
    • 2018-09-14
    • 2019-04-09
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多