如何从Firebase数据库中过滤数据并将其显示到android recyclerview中?

时间:2018-03-25 08:39:18

标签: android firebase firebase-realtime-database

我有firebase数据库,它有不同的数据。我使用适配器类将数据发送到Recycler视图。一切都很好,我可以在回收站视图中显示所有内容。但是当我使用equalTo()函数根据用户ID过滤数据时,在回收器视图中没有显示任何内容。

我该如何解决这个问题?

final Query itemFilter = mDatabase.child("items").child("userId")
            .equalTo(UId);
itemFilter.addListenerForSingleValueEvent(new ValueEventListener(){

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()){
            for(DataSnapshot singleSnapshot : dataSnapshot.getChildren()) {

                Album item = singleSnapshot.getValue(Album.class);

                albumList.add(item);

                AlbumsAdapter albumsAdapter = new AlbumsAdapter(UploadHistory.this, albumList);
                recyclerView.setAdapter(albumsAdapter);
            }

            }
            else{
                Toast.makeText(UploadHistory.this,"NO DATA FOUND",Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onCancelled(DatabaseError error) {
            // Failed to read value
            Log.w(TAG, "Failed to read value.", error.toException());
        }
    });

1 个答案:

答案 0 :(得分:0)

这是我的答案!

问题在于查询数据,只需将查询更改为

final Query itemFilter = mDatabase.orderByChild("userId").equalTo(UId);

然后得到了预期的结果......