Firebase显示数据库中的数据

时间:2016-10-03 16:25:25

标签: javascript firebase firebase-realtime-database

<button id="all" onclick="button()"> View All </button>

<script>
  function button(){
    var userRef = new Firebase("https://addview-c21e6.firebaseio.com/users/");
    userRef.on("value", function(snapshot) {
      // The callback function will get called twice, once for "fred" and once for "barney"
      snapshot.forEach(function(childSnapshot) {
        // key will be "fred" the first time and "barney" the second time
        var key = childSnapshot.key();
        // childData will be the actual contents of the child
        var childData = console.log(childSnapshot.val());
        var para = document.createElement("p");
        var node = document.createTextNode(childSnapshot.val());
        para.appendChild(node);
        var element = document.getElementById("viewAll");
        element.appendChild(para);
      });
    });
  }
</script>
<div id="viewAll"> </div>

以上代码就是我的问题。我的树如下:我有root作为用户,然后在那下面有用户名(即john),然后在那下面有两个孩子..姓名和年龄。所以基本上我希望viewAll div能够列出数据库中的所有数据。所以应该列出:John 15,Jake 16,依此类推,直到它到达最后一个用户。目前它只是打印对象Object。我从哪里开始?附:有更多的代码我只是为了简单起见而没有全部展示。 我很感激帮助!

1 个答案:

答案 0 :(得分:0)

您的childSnapshot.val()应该是带有用户名,姓名和年龄的JSON对象,假设您的每个用户看起来像这样:

'fred': { username: 'fred', name: 'Fred Flintstone', age: 45 },
'barney': { username: 'barney', name: 'Barney Rubble', age: 44 }

forEach()循环中,您应该能够访问以下每个属性:

var userInfo = childSnapshot.val();
var username = userInfo.username;
var name = userInfo.name;
var age = userInfo.age;