代码之家  ›  专栏  ›  技术社区  ›  aloj

Firebase云函数停止工作-事件。数据未定义

  •  4
  • aloj  · 技术社区  · 8 年前

    我有一些云功能,但它们突然停止工作,现在我得到了事件。数据未定义

    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云功能是否有任何变化?

    2 回复  |  直到 8 年前
        1
  •  5
  •   Peter Haddad    8 年前

    云功能已更新至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 现在有两个参数 change context Change before after 属性,以及 之前 相当于 previous

    而且 改变 之前 可以使用此处列出的方法:

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

        2
  •  0
  •   ionyekanna    8 年前

    我也有同样的问题。

    这是一份firebase文档,显示了在新v1上所做的更改

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

    推荐文章