Javascript谷歌云函数尝试在FirebaseDatabase中获得新的附加值

Javascript谷歌云函数尝试在FirebaseDatabase中获得新的附加值,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,我跟随firebase的引入,在数据库中发生变化时触发。我只想记录新添加的值,但不幸的是它不起作用。我的数据库结构如下所示: "Chat" : { "-LGe_0ak8UOv9jFRukpZ" : { "-LGe_3FgL6JkM-VQsg3K" : { "Message" : "heiii na du", "createdByUser" : "6dB5rWfSIwez3gO0N0ClBwFJKu53",

我跟随firebase的引入,在数据库中发生变化时触发。我只想记录新添加的值,但不幸的是它不起作用。我的数据库结构如下所示:

  "Chat" : {

      "-LGe_0ak8UOv9jFRukpZ" : {
         "-LGe_3FgL6JkM-VQsg3K" : {
           "Message" : "heiii na du",
           "createdByUser" : "6dB5rWfSIwez3gO0N0ClBwFJKu53",
           "ts" : 1530796459
          },
       "-LgeqadfFEA" : {
         "Message" : "yo",
         "createdByUser" : "asfdasdfasdfasdf",
         "ts" : 123456677
  }
},
因此,现在最后一项被添加到我的数据库中,通常情况下,我会收到一个带有新值的日志,但该方法从未启动。我也没有收到任何错误。以下是我的方法:

exports.makeUppercase = functions.database.ref('/Chat')
 .onCreate((snapshot, context) => {
  // Grab the current value of what was written to the Realtime 
Database.
const original = snapshot.val();
console.log('ts', context.params.pushId, original);
const uppercase = original.toUpperCase();
// You must return a Promise when performing asynchronous tasks inside a 
Functions such as
// writing to the Firebase Realtime Database.
// Setting an "uppercase" sibling in the Realtime Database returns a 
Promise.
return snapshot.ref.parent.child('ts').set(uppercase);
});

问题是您没有正确指定实时数据库路径 您可以使用通配符监视所有“聊天”路径中的更改,否则,从代码中可以看出,函数正在监视指定路径中实际键值对的添加,而您的意图是监视子项的创建 示例:
functions.database.ref('/Chat/{pushId}').onCreate((快照,上下文)=>{
//你的死刑
})
这告诉云函数观察“聊天”路径中任何对象的创建 您可以通过
context.params.pushId
快乐编码