На изображении выше, когда я нажимаю кнопку «Далее» для любого элемента, в окне рециркуляции автоматически добавляются обновленные значения всех элементов дважды, как показано на рисунке. ниже изображение. (Здесь я нажал следующую кнопку UJjwal Pratap)
Адаптер
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
final UserDataModel userDataModel = userDataModelList.get(position);
userName.setText(userDataModel.getUserName());
userFollowers.setText(userDataModel.getUserFollowers() + " Followers");
followUser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child(userDataModel.getUserID()).child("Followers")
.child(Objects.requireNonNull(FirebaseAuth.getInstance().getUid()));
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists() && Objects.requireNonNull(dataSnapshot.getValue()).toString().equals("1")) {
FirebaseDatabase.getInstance().getReference().child("Users").child(userDataModel.getUserID()).child("Followers")
.child(Objects.requireNonNull(FirebaseAuth.getInstance().getUid())).removeValue();
FirebaseDatabase.getInstance().getReference().child("Users").child(FirebaseAuth.getInstance().getUid())
.child("Following").child(userDataModel.getUserID()).removeValue();
} else {
FirebaseDatabase.getInstance().getReference().child("Users").child(userDataModel.getUserID()).child("Followers")
.child(Objects.requireNonNull(FirebaseAuth.getInstance().getUid())).setValue("1");
FirebaseDatabase.getInstance().getReference().child("Users").child(FirebaseAuth.getInstance().getUid())
.child("Following").child(userDataModel.getUserID()).setValue("1");
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
Фрагмент
FirebaseDatabase.getInstance().getReference().child("Users").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
if (!Objects.equals(childSnapshot.getKey(), FirebaseAuth.getInstance().getUid())) {
final UserDataModel userDataModel = childSnapshot.getValue(UserDataModel.class);
assert userDataModel != null;
userDataModel.setUserFollowers(String.valueOf(childSnapshot.child("Followers").getChildrenCount()));
PeopleArrayList.add(userDataModel);
}
}
PeopleAdapter = new PeopleAdapter(PeopleArrayList);
PeopleRecyclerView.setAdapter(PeopleAdapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});