Firebase查询重叠数据

时间:2016-07-28 18:22:46

标签: android firebase firebase-realtime-database

我正在使用Firebase编写Android应用。正如我已经了解的那样,Firebase仅支持对一个属性的查询,因此无法链接order...个调用。在大多数情况下建议的解决方案是每个项目中的属性组合或创建二级索引(例如,see here)。

但是,这主要适用于equalTo()请求。我的情况如下(我相信可能很常见):

|- events
|    |
|    |- event1
|    |   |
|    |   |- name
|    |   |- startDate
|    |   |- endDate
|    |
|    |- event2
|    |   |
|    |   |- name
|    |   |- startDate
|    |   |- endDate
|    |

现在我想要一个日期范围重叠的查询 - 给我下个月的所有事件(事件可能跨越几个月)。

Firebase在没有客户端处理或过滤的情况下是否可行?我可以在我的DB中创建任何类型的技巧/组合/索引吗?

我想将查询结果与FirebaseUI适配器一起使用,这些适配器不支持过滤。

1 个答案:

答案 0 :(得分:0)

轻松的方式

https://github.com/davideast/Querybase

使用此

 const databaseRef = firebase.database.ref().child('events');
 const querybaseRef = querybase.query(databaseRef);

 querybaseRef.where('startDate').lessThan(endDate);
 querybaseRef.where('endDate').greaterThan(startDate);