如何在唯一键内获取firebase数据库嵌套数据访问

时间:2016-09-11 08:04:52

标签: javascript arrays firebase firebase-realtime-database

在firebase中我想访问如下编写的数据库。

enter image description here

<script>
function fnReadMails(){
  var user = firebase.auth().currentUser;
  var ref = firebase.database().ref('/posts/'+user.uid);
  ref.on("value", function(snapshot) {
    var vardata = (snapshot.val());
    console.log(vardata);
  });
}
</script>

问题是以红色标记的字符串是随机生成的唯一按键。每当我得到一个引用时,我可以将ref提升到一个级别,即userid,但我想访问该键中的数据,我不知道它将自动为下一个帖子生成。< / p>

如何访问密钥内的嵌套数据?

2 个答案:

答案 0 :(得分:2)

您需要child_added事件类型,这会记录您参考下的每个孩子的快照。

ref.on("child_added", function(snapshot) {
    console.log(snapshot);
});

答案 1 :(得分:2)

作为Callam答案的替代方案,您还可以继续使用value事件。但在这种情况下,您必须使用forEach()

循环显示消息
ref.on("value", function(snapshot) {
  snapshot.forEach(function(messageSnapshot) {
    console.log(messageSnapshot.val());
  }
});

这两种方法(使用value与使用child_*)都会产生相同的网络流量。但使用value通常更容易上手,而使用child_事件可以更轻松地更新需要更新的特定UI元素。