Node.js Firebase-从两个不同节点获取数据列表
firebase数据结构是这样的:Node.js Firebase-从两个不同节点获取数据列表,node.js,firebase,firebase-realtime-database,Node.js,Firebase,Firebase Realtime Database,firebase数据结构是这样的: { "Entertainment":{ "Book":{ 0:{ id = 1234 genre = horror // data of some object type } 1:{ id = 2345
{ "Entertainment":{
"Book":{
0:{ id = 1234
genre = horror
// data of some object type
}
1:{ id = 2345
genre = romance
// data of some object type
}
2:{ id = 3456
genre = horror
// data of some object type
}
}
"Movie":{
0:{ id = 6789
genre = horror
// data of some object type
}
1:{ id = 9876
genre = horror
// data of some object type
}
2:{ id = 0000
genre = action
// data of some object type
}
}
}
}
现在,我想得到一份基于流派的所有书籍和电影的列表。要仅检索书籍/电影(一种类型的项目),我将执行以下操作:
ItemService.prototype.getItems = function (searchOptions) {
let _this = this;
return bookRef
.orderByKey()
.once('value')
.then(function (items) {
let promises = [];
let promise;
let filteredItems = [];
let item;
let endTime = '';
let genre = searchOptions.genre;
items = items.val();
for (let key in items) {
if (items.hasOwnProperty(key) && items[key].genre &&
items[key].genre.toLowerCase() === genre.toLowerCase()) {
item = items[key];
items[key].itemId = key;
promise = Promise.resolve(item);
promise.then(function (item) {
if (!item) {
return;
}
filteredItemss.push({
itemId: item.itemId,
title: item.item_title,
genre: item.genre,
..................
});
});
promises.push(promise);
}
}
return Promise.all(promises)
.then(function () {
filteredItems = _.sortBy(filteredItems, 'title');
return {
total: filteredItems.length,
results: filteredItems
};
})
});
现在,如何获取另一项的列表并将这两个列表附加在一起以返回?基本上,我想做的是,当用户选择一种类型时,它会向用户显示该类型下所有可用书籍和电影的列表。这能实现吗?谢谢你的帮助,蒂亚