Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Firebase-从两个不同节点获取数据列表_Node.js_Firebase_Firebase Realtime Database - Fatal编程技术网

Node.js 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

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
                    };
                })
        });
现在,如何获取另一项的列表并将这两个列表附加在一起以返回?基本上,我想做的是,当用户选择一种类型时,它会向用户显示该类型下所有可用书籍和电影的列表。这能实现吗?谢谢你的帮助,蒂亚