首页 文章

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

提问于
浏览
0

在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 ,但是我想访问该键中的数据,我不知道它将自动为下一个帖子生成 .

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

2 回答

  • 2

    你想要 child_added 事件类型,这将记录你的ref下的每个孩子的快照 .

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

    作为Callam答案的替代方案,您还可以继续使用 value 事件 . 但在这种情况下,您必须使用 forEach() 循环遍历消息:

    ref.on("value", function(snapshot) {
      snapshot.forEach(function(messageSnapshot) {
        console.log(messageSnapshot.val());
      }
    });
    

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

相关问题