【问题标题】:Iterate nodes to get child key value迭代节点获取子键值
【发布时间】:2015-06-05 09:42:09
【问题描述】:

这就是我的测试火力库的样子

我希望能够遍历整个列表并将名称与字符串匹配,如果匹配,则返回 CID。这是我从官方文档中尝试的,但它返回未定义。

fb.on('value', function(snapshot){
  var data = snapshot.val();
  console.log(data.name);     
})

如果我只记录 snapshot.val() 那么它会以这种格式返回所有这些:

{CID: 'XXXXXX' , 名称: 'XXXXXX'}

不知道我在这里做错了什么。

【问题讨论】:

  • fbsnapshot 是什么?
  • fb 是对 firebase 位置的引用,snapshot 是回调中的数据快照。
  • 你想匹配的名字在哪里?
  • 用户稍后会传入。问题是我无法从 firebase 获取名称值来比较字符串。
  • 也许我应该更清楚:请显示定义 fbsnapshot 的代码。

标签: javascript node.js firebase


【解决方案1】:

看起来您应该使用 data.Name,而不是 data.name

【讨论】:

  • 试过了,还是返回 undefined
  • 当你说它返回所有这些时,你的意思是在一个数组中吗?
  • 是的,它们在一个数组中。
  • 也许我遗漏了一些东西,但如果它是一个数组,那么您可能想要迭代它(例如,使用 forEach),或者您可能知道您想要,例如第 0 个元素,在这种情况下,您可以只记录 data[0].Name.
  • 之前我尝试过这个fb.on('value', function(snapshot){ snapshot.forEach(function(dataSnap){ console.log(dataSnap.Name); }) }),它给了我一个错误,但我现在尝试了这个并且它成功了:fb.on('value', function(snapshot){ var data = snapshot.val(); data.forEach(function(dataSnap){ console.log(dataSnap.Name); }) })
猜你喜欢
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多