有什么方法可以在Firestore RecyclerAdapter中使用OR查询吗?

时间:2019-09-07 08:40:08

标签: android google-cloud-firestore

我有一个使用Firestore Recyclerview Adapter的recyclerview,现在我想使用OR查询显示列表。 例如,我想使用查询显示处于“待处理”状态或“已分配”状态的列表。我知道firestore没有内置的OR查询,但无论如何我都想实现。任何其他解决方案。

我在firestore db中存储了4个状态:待处理,已分配,已接受和已完成。 只想显示待定或已分配

下面是我的代码:

    Query query = requestVehiclesCollectionReference
            .whereEqualTo("clientId", id)
     // show list which are in Pending state or Assigned state
            .whereEqualTo("status", "Pending")
            .orderBy("createdAt", Query.Direction.DESCENDING);


    FirestoreRecyclerOptions<Item> options = new 
    FirestoreRecyclerOptions.Builder<Item>()
            .setQuery(query, Item.class)
            .build();

1 个答案:

答案 0 :(得分:0)

Firestore不支持具有OR条件的查询。参见:

常见的解决方法是使用多个查询(每个条件一个)并将结果合并到应用程序代码中。

FirebaseUI的适配器显示单个查询或集合中的数据。他们无权显示多个查询/集合的结果。

通过这种组合可以得出结论,您无法使用单个FirebaseUI适配器显示来自OR条件的数据。您必须为此创建自己的适配器,尽管您当然可以使用(开源)FirebaseUI适配器来获得灵感。