Javascript Cloud functions event.params返回未定义的

Javascript Cloud functions event.params返回未定义的,javascript,firebase,google-cloud-messaging,google-cloud-functions,Javascript,Firebase,Google Cloud Messaging,Google Cloud Functions,我正在开发一个应用程序,当应用程序关闭时,我工作场所的用户可以使用它通知其他办公室。当这种情况发生时,用户按下应用程序中的一个按钮,用标志“红色”更新Firebase数据库。更新后,我希望使用云功能向手机发出通知。该应用程序和Firebase工作完美,但我想知道什么应用程序的状态已经更新。我正在尝试event.data.key和event.params.apps,但两者都返回未定义。我做错了什么?以下是数据库结构(尚不允许在SO上发布图片)和云函数代码: 以下是数据库树的图片: 我想知道的是;

我正在开发一个应用程序,当应用程序关闭时,我工作场所的用户可以使用它通知其他办公室。当这种情况发生时,用户按下应用程序中的一个按钮,用标志“红色”更新Firebase数据库。更新后,我希望使用云功能向手机发出通知。该应用程序和Firebase工作完美,但我想知道什么应用程序的状态已经更新。我正在尝试event.data.key和event.params.apps,但两者都返回未定义。我做错了什么?以下是数据库结构(尚不允许在SO上发布图片)和云函数代码: 以下是数据库树的图片:


我想知道的是;如何获取{appar}参数并将其包含在通知中?目前,变量app1和appData都表示“未定义”。

如果您编写
var-appData=String(snapshot.parent)你得到了什么?现在试过了,但控制台中仍然显示“未定义”,谢谢你的回答。即使发送了通知,它是否与控制台日志错误“函数返回未定义、预期的承诺或值”有关?您可以通过从
sendToTopic()
return admin.messaging().sendtopic(…)
appData=String(snapshot.key)返回承诺来消除第二个警告
不正确。数据库中没有名为
key
的字段。使用
event.data.key
。非常感谢@BobSnyder,它成功了!通过var appData=event.data.key获取更新的应用程序。
const functions = require('firebase-functions');

// The Firebase Admin SDK to access the Firebase Realtime Database. 
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendAppUpdate = functions.database.instance('medelsappen').ref('/apps/{appar}').onUpdate(event => {

  //Hämtar status för programmet (red/green)
  const snapshot = event.data.val();
  var appStatus = String(snapshot.status);
  var appData = String(snapshot.key);


  //Hämtar vilket program som uppdaterats
  var app = event.params.appar;
  var app1 = String(app);



  console.log("Aktuell app: ", app1, ", Status; ", appStatus, "appData: ", appData);

  var mess = (app1 + " , ny status: " + appStatus);

var topic = "apps";
var payload = {
    notification: {
      title: "Programstatus uppdaterad",
      body: (mess)
    }
  };

  var options = {
    priority: "high",
    timeToLive: 60 * 60 * 24
  };

admin.messaging().sendToTopic(topic, payload, options)
  .then(function(response) {

    console.log("Lyckades skicka meddelande:", response);
  })
  .catch(function(error) {
    console.log("Fel vid försök att skicka meddelande:", error);
  });

}
);