【问题标题】:How to get the index of snapshot on child added?如何获取添加的孩子的快照索引?
【发布时间】:2014-12-15 18:58:24
【问题描述】:
...
myDataRef.on('child_added', function(snapshot){
  //I would like to know what snapshot it is, by index
});
...

我可以使用什么来获取snapshotmyDataRef 中添加的子项的索引?

【问题讨论】:

  • 不知道能不能拿到索引。但是您可以通过将第二个参数传递给回调来获取前一个兄弟孩子的名称。有帮助吗?

标签: javascript firebase


【解决方案1】:

在 Firebase 集合的上下文中,子项由其名称标识,而不是由其索引。您可以使用数字名称,但您的代码 sn-p 不会显示您是否这样做。

如果您正在寻找名字(在myDataRef 下识别孩子的东西),那么您可以从snapshot.name() 获得它。

所以你也得到了当前孩子的名字:

myDataRef.on('child_added', function(snapshot){
  var nameOfThisChild = snapshot.name();
});

如果您将项目存储在具有数字名称的节点中,则可以将名称解析为数字:

parseInt(nameOfThisChild)

也可以直接获取子快照的ref

myDataRef.on('child_added', function(snapshot){
  var refToThisChild = snapshot.ref(); 
  // equivalent to myDataRef.child(snapshot.name())
});

一如既往:请务必阅读how Firebase handles arrays 上的文档。

【讨论】:

  • 非常感谢!还有一个问题:我可以用一些数据更新快照的一些属性吗?
  • 当然。您需要使用update,它允许您只指定一些属性(修补对象,而不是替换它):snapshot.ref().update({ newprop: newvalue }); 请参阅firebase.com/docs/web/api/firebase/update.html
猜你喜欢
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 2011-08-27
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多