【问题标题】:"array.forEach is not a fuction" after firebase deploy but works on firebase servefirebase 部署后的“array.forEach 不是函数”,但适用于 firebase 服务
【发布时间】:2019-04-30 13:52:27
【问题描述】:

部署后,我的数组似乎没有定义,我收到“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?

【问题讨论】:

  • 您可能想要记录您从getCol("currencies") 获得的信息,因为它似乎不是您所期望的。
  • 嗨弗兰克,感谢您的建议。我确实在开发过程中记录了输出并忘记了它。谢谢!我确实返回了一个对象。不是数组。
  • 好的。在这种情况下,我会将这个问题标记为错字。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多