【问题标题】:Firebase Cloud Function prints 'undefined' when reading a node in JavaScript?Firebase Cloud Function 在 JavaScript 中读取节点时打印“未定义”?
【发布时间】:2018-12-05 07:11:18
【问题描述】:

这是在 Firebase 数据库中创建新消息时触发通知的函数的第一部分。

当我尝试从数据快照中打印一个值时,我在控制台上得到以下输出。我在这里遗漏了什么吗?

fromId undefined

这是我的数据库结构:

"messages" : {
    "-LJrd_EGOqbv0XqeNoJp" : {
      "fromId" : "dBQd541pxlRypR7l1WT2utKVxdX3",
      "message" : "hey ",
      "timeStamp" : 1.534236972096062E9,
      "toId" : "dBQd541pxlRypR7l1WT2utKVxdX2"
    }
}

这是我的 notifyNewMessage Firebase 云函数

exports.notifyNewMessage = functions.database.ref('/messages/{pushId}/{message}').onCreate((snap, context) => {

  const messageSnap = snap.val(); 

  const from_Id = messageSnap["fromId"];

  console.log('fromId', from_Id);

});

【问题讨论】:

  • messageSnap 看起来像什么?当您执行console.log(messageSnap) 时会发生什么?

标签: javascript google-cloud-functions


【解决方案1】:

您的代码现在在 message 属性上触发,因此它只能访问 那个 特定值。

要访问新消息的所有属性,请触发更高一级:

exports.notifyNewMessage = functions.database.ref('/messages/{pushId}').onCreate((snap, context) => {

  const messageSnap = snap.val(); 

  const from_Id = messageSnap["fromId"];
  console.log('fromId', from_Id);

  const message = messageSnap.message; // you can also use . notation
  console.log('message', message);

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多