admin管理员组

文章数量:1428252

How to iterate through nested firebase objects.

Publications-
            |
            |-Folder1------
            |             |-hdgjg76675e6r-
            |             |               |-Name
            |             |               |-Author
            |             |
            |             |+-hdgjdsf3275e6k
            |             |+-hd345454575e6f
            |+-Folder2

In publications I have folders and in folders I have objects (containing properties like. Name, Author)

I have iterated through folders till now.

snapshot.forEach(function (snapshot) {
    var key = snapshot.key();
    var obj = snapshot.val();
    console.log(key);
    //output => Folder1 , Folder2 etc
});

When I print obj

console.log(obj);

It displays

How do I iterate through obj variable as it contains hdgjg76675e6r , hdgjdsf3275e6k etc and further?

How to iterate through nested firebase objects.

Publications-
            |
            |-Folder1------
            |             |-hdgjg76675e6r-
            |             |               |-Name
            |             |               |-Author
            |             |
            |             |+-hdgjdsf3275e6k
            |             |+-hd345454575e6f
            |+-Folder2

In publications I have folders and in folders I have objects (containing properties like. Name, Author)

I have iterated through folders till now.

snapshot.forEach(function (snapshot) {
    var key = snapshot.key();
    var obj = snapshot.val();
    console.log(key);
    //output => Folder1 , Folder2 etc
});

When I print obj

console.log(obj);

It displays

How do I iterate through obj variable as it contains hdgjg76675e6r , hdgjdsf3275e6k etc and further?

Share Improve this question edited Jul 19, 2017 at 12:15 KENdi 7,7892 gold badges18 silver badges31 bronze badges asked Jul 19, 2017 at 12:07 Noman AliNoman Ali 3,34013 gold badges47 silver badges79 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 5

You obj is just a normal javascript object, you can just use a simple for loop:

for(var key in obj) {
    console.log(obj[key]);
}

or you can use again a forEach on your snapshot:

folderSnapshot.forEach(function (objSnapshot) {
    objSnapshot.forEach(function (snapshot) {
        var val = snapshot.val();
        console.log(val); // Should print your object
    });
});

Will the tree increase in depth? If not, then the best solution here is to just do a double for loop.

snapshot.forEach(function (snapshot) {
    var key = snapshot.key();
    var obj = snapshot.val();
    console.log(key);
    //output => Folder1 , Folder2 etc

    obj.forEach(function (book) {
        var title = book.title;
        var author = book.author;
    });
});

No need to over-engineer things, in my opinion.

Heres simple way how you can get your object of objects to array of objects:

var myObject = {key1: {name: 'hello'}, key2: {name: 'hello2'}}; 
var myArrayOfObject = Object.values(myObject);

console.log(myArrayOfObject);
// Result: (2) [Object, Object]

本文标签: jqueryIterating through nested firebase objectsJavascriptStack Overflow