这是firebase数据结构的方式:
{ "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
};
})
});
现在,我如何获取另一个项目的列表并将两个列表一起追加返回?基本上,我想要做的是,当用户选择一种类型时,它将向用户显示该类型下所有可用书籍和电影的列表。这可以实现吗?任何帮助表示赞赏,TIA。