Firebase - 从两个不同的节点获取数据列表

时间:2017-07-24 19:45:16

标签: node.js firebase firebase-realtime-database

这是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。

0 个答案:

没有答案