我正在尝试在没有open_chats的情况下列出数据库中的所有用户-user_id:是
我现在在Log.println中告诉我所有用户,但是当我列出所有用户时,它不会在有效的recyclerView中打印出来。它应该列出除BlueFoot和vilewolf之外的所有用户。但这只是在我设置的日志中重复它们,如下所示。
编辑:如果我删除open_chats-User_id:是,则只有vilewolf出现在列表中。
这是我的数据库:
这是我的代码
private void readUsers() {
final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference("users");
dbRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mUsernames.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
final User user = snapshot.getValue(User.class);
DatabaseReference dbRef2 = FirebaseDatabase.getInstance().getReference("users").child(firebaseUser.getUid()).child("open_chats").child(user.getId());
dbRef2.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mUsernames.clear();
if(dataSnapshot.getValue() == null) {
if(!user.getId().equals(firebaseUser.getUid())) {
mUsernames.add(user);
Log.println(Log.DEBUG, "", "Test- " + user + ", " + user.getUsername());
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
userAdapter = new UserAdapter(getContext(), mUsernames);
recyclerView.setAdapter(userAdapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}