Проблема здесь:
if (!ModelUsers.getUid().equals(firebaseUser.getUid())) {
usersList.add(modelUsers);
}
Вы вызываете getUid()
метод, напрямую использующий класс, вызывайте его, используя объект класса. также проверьте, является ли Uid нулевым или нет:
if (modelUsers.getUid() != null && !modelUsers.getUid().equals(firebaseUser.getUid())) {
usersList.add(modelUsers);
}
PS:
в вашем функциональном комментарии usersList.add(modelUsers);
, а также проверьте todo. обновите свою функцию следующим образом:
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
usersList.clear();
//TODO CHECK HERE HOW MANY dataSnapshot OBJECTS ARE YOU GETTING
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren()) {
ModelUsers modelUsers = dataSnapshot1.getValue(ModelUsers.class);
//usersList.add(modelUsers);
// get all users except currently signed in user
if (modelUsers.getUid() != null && !modelUsers.getUid().equals(firebaseUser.getUid())) {
usersList.add(modelUsers);
}
}
adapterUser.swapData(userList);
//adapterUser.notifyDataSetChanged();
}
Добавьте этот метод в свой класс адаптера (обновите имя переменной и тип данных как свой):
public void swapData(ArrayList<ModelUsers> list) {
if (list != null) {
this.arrayList.clear();
this.arrayList.addAll(list);
notifyDataSetChanged();
}
}