如何从Firebase中的父节点获取所有子节点?

时间:2018-04-09 12:22:43

标签: javascript firebase

所以我打算从父节点societies中检索一个节点列表,这些节点将存储子节点名称,从这个案例中检索为ALT5ASN11Foot15

Screenshot of firebase

child正下方的sUsers节点是该用户的uid,因此可以使用 var runUid = firebase.auth().currentUser.uid;以便查询可以与具有不同child个节点的多个用户一起使用

编辑:这需要在sUsers内的Societies下具有不同子节点的其他节点上工作

到目前为止

代码,目前因为societies下有3个子节点,它会记录3 null个值,而我想要存储child个节点的实际名称

    firebase.auth().onAuthStateChanged(function(user){
   var userID = firebase.auth().currentUser.uid;
   var rootRef = firebase.database().ref('sUsers');
   var newRoot = rootRef.child(userID).child('Societies')
    newRoot.once('value', function(snapshot){
        snapshot.forEach(function(childs){
            var societies = childs.child('Societies').val();
            console.log(societies);

        });
    });
});

1 个答案:

答案 0 :(得分:3)

在您发布的代码中,您在childs中使用的变量DataSnapshot.forEach实际上是节点'Societies'的每个子节点。 所以这应该有效:

firebase.auth().onAuthStateChanged(function(user){
    var userID = firebase.auth().currentUser.uid;
    var rootRef = firebase.database().ref('sUsers');
    var newRoot = rootRef.child(userID).child('Societies');
    newRoot.once('value', function(snapshot){
        snapshot.forEach(function(_child){
            var society = _child.key;
            console.log(society);
        });
    });
});

Here你可以看到一些文档和一些例子。