gpt4 book ai didi

android - 如何在 FirestoreRecyclerAdapter 中添加 2 个不同的查询?

转载 作者:行者123 更新时间:2023-11-29 01:01:45 25 4
gpt4 key购买 nike

我有两个问题:

Query firstQuery = ref.orderBy("name", Query.Direction.ASCENDING).limit(10);
getData(firstQuery);

Query secondQuery = ref.orderBy("price", Query.Direction.ASCENDING).limit(10);
getMoreData(secondQuery);

第一种方法如下所示:

private void getData(Query query) {
firestoreRecyclerOptions = new FirestoreRecyclerOptions.Builder<ModelClass>().setQuery(query, ModelClass.class).build();
myFirestoreRecyclerAdapter = new MyFirestoreRecyclerAdapter(firestoreRecyclerOptions);
recyclerView.setAdapter(myFirestoreRecyclerAdapter);
}

这里是第二种方法。

private void getMoreData(Query query) {
firestoreRecyclerOptions = new FirestoreRecyclerOptions.Builder<ModelClass>().setQuery(query, ModelClass.class).build();
myFirestoreRecyclerAdapter = new MyFirestoreRecyclerAdapter(firestoreRecyclerOptions);
recyclerView.setAdapter(myFirestoreRecyclerAdapter);
}

两个变量都声明为全局变量:

private FirestoreRecyclerOptions<ModelClass> firestoreRecyclerOptions;
private MyFirestoreRecyclerAdapter myFirestoreRecyclerAdapter;

当应用程序启动时,元素将使用第一种方法显示在 RecyclerView 中。我想要实现的是,在单击按钮时,当 getMoreData() 方法被触发时,将第二个查询的结果添加到同一适配器中,最终有 20 个元素。现在,当我单击该按钮时,第二个查询中的元素将覆盖第一个。

最佳答案

FirestoreRecyclerAdapter 中没有任何内置功能可以组合两个查询。

我能想到的最好的方法是在您的应用代码中创建组合结果的 List/数组,然后使用数组适配器。这并不理想,因为您不会使用 FirebaseUI。

或者,看看 FirebaseUIs FirestorePagingAdapter ,它将(非实时)DocumentSnapshots 的多个页面组合在单个回收器 View 中。

关于android - 如何在 FirestoreRecyclerAdapter 中添加 2 个不同的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com