如何在Firebase中构建数据以过滤潜在的大型数据集?

时间:2016-11-04 13:09:08

标签: firebase firebase-realtime-database

我的实时数据库中有一个包含数千个孩子的节点,并希望对这些节点进行过滤,既节省了快速又节省了带宽(后者在这一点上可能不那么重要,但可能在我的数据增长时)。< / p>

构建此方法以避免获取所有项目并在客户端上进行过滤的最佳方法是什么?

以下是我计划实施的内容,但由于我没有使用Firebase或其他NoSQL数据库的经验,我确实需要一些输入:)

{
  "items" : {
    "item1" : {
      "name" : "Item 1",
      "filters": {
        "filter1" : true,
        "filter2" : true,
        "filter3" : true
      }
    },
    "item2" : {
      "name" : "Item 2",
      "filters": null
    },
    "item3" : {
      "name" : "Item 3",
      "filters": {
        "filter2" : true
      }
    },
    "item4" : {
      "name" : "Item 4",
      "filters": {
        "filter2" : true,
        "filter3" : true
      }
    },
    "item5" : {
      "name" : "Item 5",
      "filters": {
        "filter3" : true
      }
    }
    // Thousands of items
  },

  "items_by_filter1" : {
    "item1" : true
  },
  "items_by_filter2" : {
    "item1" : true,
    "item3" : true
  },
  "items_by_filter3" : {
    "item1" : true,
    "item4" : true,
    "item5" : true
  }
}

我是否在思考这个问题,还是这是一个好方法?如果我想过滤几个过滤器,我应该采用相同的方法并为所有过滤器组合添加类似的东西(可能很难维护),该怎么办?

"items_by_filter2_and_filter3" : {
    "item1" : true,
    "item4" : true
}

0 个答案:

没有答案