【问题标题】:Firebase cloud functions stopped working - event.data undefinedFirebase 云功能停止工作 - event.data 未定义
【发布时间】:2018-04-25 09:24:57
【问题描述】:

我有一些云功能,但它们突然停止工作,现在我得到 event.data undefined

exports.newMessageReceived = functions.database.ref('/messages/{pushId}')
 .onWrite((event) => {

    if (event.data.previous.exists() || !event.data.exists() ) {
        //Do nothing if data is edited or deleted
        console.log('Message edited or deleted - skip');
        return;
    }
   ...
}

我得到了

TypeError: Cannot read property 'previous' of undefined

这就是它的定义here。 Firebase 云功能有什么变化?

【问题讨论】:

    标签: javascript node.js firebase firebase-realtime-database google-cloud-functions


    【解决方案1】:

    云功能已更新至 1.0 版,您可以在此处查看更多信息:

    https://firebase.google.com/docs/functions/beta-v1-diff#realtime-database

    关于问题,你需要把代码改成这样:

    exports.newMessageReceived = functions.database.ref('/messages/{pushId}').onWrite((change,context) => {
    
    if (change.before.exists() || !change.after.exists() ) {
        //Do nothing if data is edited or deleted
        console.log('Message edited or deleted - skip');
        return;
      }
    
    }
    

    onWrite 现在有两个参数changecontextChange 具有beforeafter 属性,before 等价于previous

    changebefore 也可以使用这里列出的方法:

    https://firebase.google.com/docs/reference/admin/node/admin.database.DataSnapshot

    【讨论】:

    • 有没有办法安装0.9.1版本的firebase?
    • 虽然它更容易更新.. 我不确定但试试这个然后npm install firebase-functions@0.9.1 --save 版本应该在你的 package.json 中改变。但是如果你降级,你可能会遇到其他问题,不太确定..
    【解决方案2】:

    我有同样的问题。

    这是一个 firebase 文档,显示了对新 v1 所做的更改

    https://firebase.google.com/docs/functions/beta-v1-diff

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 2020-12-01
      • 2019-03-06
      • 2019-04-17
      • 2017-10-29
      • 2019-10-22
      相关资源
      最近更新 更多