我有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());
}
});
答案 0 :(得分:0)
这是我的答案!
问题在于查询数据,只需将查询更改为
final Query itemFilter = mDatabase.orderByChild("userId").equalTo(UId);
然后得到了预期的结果......