我可以使用什么适配器来填充接受来自 Firestore 的多个查询的 recyclerView?

What adapter can I use to populate a recyclerView that accepts multiple queries from Firestore?

这个问题源于。我正在寻找一个适配器来填充我的 RecyclerView 多个查询。

我目前正在使用 FirestoreRecyclerAdapter,但被告知因为它只接受一个查询,所以我不能用它来填充 RecyclerView 和集合中的选定文档。

我目前拥有的:

Query posts = db.collection("posts");
        FirestoreRecyclerOptions<Post> options = new FirestoreRecyclerOptions.Builder<Post>()
                .setQuery(posts, Post.class)
                .build();

        adapter = new FirestoreRecyclerAdapter<Post, PostViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull PostViewHolder postViewHolder, int position, @NonNull Post post) {
                postViewHolder.setPost(post);
            }

            @NonNull
            @Override
            public PostViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.card_view_layout, parent, false);
                return new PostViewHolder(view);
            }
        };

        recyclerView.setAdapter(adapter);

这当前检索我的帖子集合中的所有帖子,但是我想使用一个列表来过滤仅包含所述列表中的 userId 的帖子。感谢您的帮助。

正如 Doug Stevenson 在他的回答中提到的那样:

You will have to make a query for each one of the documents you want to display, collect the results in memory, and use a different type of adapter to populate the view.

正如我在您的代码中看到的,您仍在使用单个查询,该查询在您的代码中被命名为 posts。例如,如果要从两个查询中获取文档,则需要两个查询对象。在代码中,这是您可以在本地合并两个查询的方法:

如您所见,onSuccess() 方法有一个参数 List<Object>,它基本上包含两个查询的结果。

I am looking for an adapter to populate my recycler view with multiple queries.

回答你的问题,因为你想在 RecyclerView 中显示数据,最合适的适配器类型可能是 RecyclerView.Adapter 不是 FirestoreRecyclerAdapter 不接受列表。将该列表传递给适配器的构造函数并在其自己的 ViewHolder 中显示每个元素。就是这样!