可以使用表示Firestore文档中字段的字符串列表构造查询吗?

时间:2019-07-02 22:11:05

标签: java android google-cloud-firestore

我希望基于包含userId的列表过滤文档,这些userId是我希望访问的文档中的字段。 this的问题类似,但我没有列出文档参考,而是有一个字段项目列表。The underlined field is what I would like to access the document by

目前,我所拥有的只是该馆藏中所有文档的展示:

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字段的所有帖子。

换句话说,我知道我可以查询具有特定字段的所有文档,但是可以查询所有适合字段列表的文档吗?

1 个答案:

答案 0 :(得分:1)

当前不可能使一个查询返回现有列表中存在的所有文档。这意味着您将无法使用FirestoreRecyclerAdapter填充RecyclerView,因为它只能使用单个Query对象。相反,您将必须查询要显示的每个文档,将结果收集到内存中,并使用其他类型的适配器填充视图。