Firebase部署后,“ array.forEach不是功能”,但可以在Firebase服务上使用

时间:2019-04-30 13:52:27

标签: node.js firebase deployment google-cloud-functions

部署后,我的数组似乎未定义,并且出现“ forEach不是函数”错误:

   textPayload: "TypeError: currencies.forEach is not a function
    at currenciesMenuConfiguration (/srv/menu/currencies-menu.js:22:16)

这是货币数组的代码:

    async function currenciesMenuConfiguration() {
    currencies = await getCol("currencies")
    currencies.forEach(element => {
        return currenciesList[element[Object.keys(element)].id] = element[Object.keys(element)].current
    });
}

在使用currenciesMenuConfiguration()定义后立即被调用

getCol定义为:

// Get all documents in collection from Firestore
async function getCol(colName) {
  return fs.collection(colName).get()
  .then(res => {
    return res.docs.map(doc => {
      var rObj = {};
      rObj[doc.id] = doc.data();
      return rObj;
    })
  })
  .catch(err => {
    return `Error getting collection: ${err}`;
  });  
}

如在Firebase上提到的在本地服务,这可以正常工作。部署后,出现此错误。我是否缺少有关云中异步代码的内容?

此外,将非常感谢您提供有关如何自行调试的任何提示。 #BeginngersLife。

//我已经检查了有关Firebase服务与部署的问题,但是它们主要处理部署方面的问题,或者无法解决我面临的问题。一个可能帮助我进一步了解的问题是:firebase serve and debugging functions?

1 个答案:

答案 0 :(得分:0)

请参阅以下问题的评论:我确实没有返回数组,而是返回了一个对象。闭幕。感谢@Frank van Puffelen的提示。