【发布时间】:2018-02-18 09:32:29
【问题描述】:
我在 firebase 上有这张桌子;
{
"car1" : {
"carId" : "123asd45",
"carImageUrl" : "url",
"carName" : "Champion"
},
"car2" : {
"carId" : "123aa456",
"carImageUrl" : "url",
"carName" : "Super"
},
"car3" : {
"carId" : "1234ew5",
"carImageUrl" : "url",
"carName" : "A"
}
}
我正在使用类似 Firebase 的 UI 适配器;
Query query = FirebaseDatabase.getInstance()
.getReference()
.child("carmodels")
.orderByChild("carName")
.equalTo(MYFILTER1)
.limitToLast(30);
FirebaseRecyclerOptions<Car> options =
new FirebaseRecyclerOptions.Builder<Car>()
.setQuery(query, Car.class)
.build();
上面的代码工作正常,但我想做的是;过滤多个字符串,如;
Query query = FirebaseDatabase.getInstance()
.getReference()
.child("carmodels")
.orderByChild("carName")
.equalTo(MYFILTER1)
.limitToLast(30);
Query query2 = FirebaseDatabase.getInstance()
.getReference()
.child("carmodels")
.orderByChild("carName")
.equalTo(MYFILTER2)
.limitToLast(30);
然后将它们合并查询结果,交给options;
FirebaseRecyclerOptions<Car> options =
new FirebaseRecyclerOptions.Builder<Car>()
.setQuery(MERGEDQuery, Car.class)
.build();
那么有可能发生这样的事情吗?还是您为此建议另一种解决方案?谢谢
编辑:
我有很多过滤器,因此在 Firebase 上使用另一个子过滤器,例如 "filters":"filter1_filter2_filter3.." 可能会有问题。
【问题讨论】:
-
您希望返回什么组合查询作为结果?对应MYFILTER1、MYFILTER2等的车都有吗?
-
@AlexMamo 有很多过滤器。我回答了我的问题,您可以查看我是如何解决的。我不知道这可能是不好的解决方法,但它工作正常。