【问题标题】:My Firebase Cloud Function fails with Object.value is not a function error?我的 Firebase 云函数因 Object.value is not a function 错误而失败?
【发布时间】:2019-05-13 04:03:26
【问题描述】:

当我尝试在registrationTokens 下获取Firebase 子节点的值时,为什么会出现以下错误:

数据库结构:

"fcmtokens" : {
    "dBQdpR7l1WT2utKVxdX2" : {
      "registrationTokens" : {
        "O": ""c4PSCAUAg5s:Yw95DyVxwElE88LwX7" 
      }
    }
  }

控制台输出:

TypeError: Object.values 不是函数

我在 Firebase Cloud Functions 中部署的部分功能:

return admin.database().ref('/fcmtokens/' + toId + '/registrationTokens').once('value').then((userTok) => {

    const registrationTokens = Object.values(userTok.val());

    console.log('registrationTokens', registrationTokens

【问题讨论】:

    标签: javascript google-cloud-platform google-cloud-functions


    【解决方案1】:

    Object.values() 是 ECMAScript 2017 中的一项新功能。

    Cloud Functions 默认运行节点 6,仅支持 ECMAScript 2015 (ES6)。因此,如果您在默认的 Cloud Functions 运行时中运行该代码,您将收到该错误(因为该函数不存在)。

    node 8 支持 ECMAScript 2017,Cloud Functions 允许你部署到 node 8。所以,如果你真的需要使用 Object.values(),你应该deploy to node 8 instead。或者您可以使用lodash equivalent

    【讨论】:

    • 感谢道格,我可以停止拔头发了 :) - 这为我指明了正确的方向。再次感谢。
    • 如果这个答案有帮助,请点赞并标记为正确。
    猜你喜欢
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多