首页 > 解决方案 > 调用 Firebase recyclerview 查询的语法

问题描述

我正在创建一个查询,以按片段中的时间戳对我的 firebase recyclerview 进行排序。我有一个关于如何调用查询的语法问题。

这是我拥有的代码片段。我不确定如何编写“query.addListenerForSingleValueEvent(????)”行

public void onStart(){
    super.onStart();

    FirebaseRecyclerOptions<Posts> options =
            new FirebaseRecyclerOptions.Builder<Posts>()
            .setQuery(usersRef, Posts.class)

            .build();

    Query query = FirebaseDatabase.getInstance().getReference("postId").orderByChild("timestamp").limitToFirst(100);

    query.addListenerForSingleValueEvent(????)

    FirebaseRecyclerAdapter<Posts, viewPostsViewHolder> adapter =
            new FirebaseRecyclerAdapter<Posts, viewPostsViewHolder>(options) {
                @Override
                protected void onBindViewHolder(@NonNull final viewPostsViewHolder holder, final int position, @NonNull Posts model) {

                    final String postId = getRef(position).getKey();

                    usersRef.child(postId).addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull final DataSnapshot dataSnapshot) {

                            Log.e("heredata","heredata"+dataSnapshot);

                            if (dataSnapshot.exists()) {

提前感谢任何帮助

标签: javaandroidfirebase-realtime-database

解决方案


如果您尝试在回收站视图中显示查询结果,则应将该查询传递给构建器的setQuery(...)调用:

Query query = FirebaseDatabase.getInstance().getReference("postId").orderByChild("timestamp").limitToFirst(100);

FirebaseRecyclerOptions<Posts> options =
        new FirebaseRecyclerOptions.Builder<Posts>()
                                   .setQuery(query, Posts.class)
                                   .build();

推荐阅读