Я использую Firebase. В моем приложении и в моей базе данных у меня есть список избранного для каждого пользователя, но у меня возникает проблема, когда я нажимаю на иконку Добавить избранное в утилите. Просмотр отмечен дважды, как показано на рисунке ниже (у меня есть 2 отдельный значок, значок для добавления в избранное, значок для удаления)
Это следующий исходный код (этот код в держателе bindView)
holder.mFav.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Map<String, String> user = new HashMap<>();
user.put("nomPoste", filActualiteData.getNomPoste());
user.put("nomEntreprise", filActualiteData.getNomEntreprise());
user.put("date", filActualiteData.getDate());
user.put("ville", filActualiteData.getVille());
user.put("id", filActualiteData.getId());
saveUserFavorite(user);
notifyDataSetChanged();
holder.mFavC.setVisibility(View.VISIBLE);
holder.mFav.setVisibility(View.GONE);
}
});
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference favoriteRef = rootRef.collection("usersFavorite").document(firebaseAuth.getCurrentUser().getUid()).collection("Favorite");
favoriteRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for ( final QueryDocumentSnapshot document : task.getResult()) {
favID = new HashMap<>();
Log.d("IDDoc", document.getString("id"));
Log.d("FilActualitéID", filActualiteData.getId());
if (filActualiteData.getId().trim().equals(document.getString("id")))
{
// -- >problem here
favID.put("Docid",document.getId());
favID.put("idValue",document.getString("id"));
Log.d("MapSize",String.valueOf(favID.size()));
final String docid= document.getId();
holder.mFavC.setVisibility(View.VISIBLE);
holder.mFav.setVisibility(View.GONE);
notifyDataSetChanged();
holder.mFavC.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirebaseFirestore.getInstance().collection("usersFavorite").document(firebaseAuth.getUid()).collection("Favorite").document(docid).delete();
notifyDataSetChanged();
holder.mFavC.setVisibility(View.GONE);
holder.mFav.setVisibility(View.VISIBLE);
}
});
}