FireBase RecyclerПросмотреть список избранного - PullRequest
0 голосов
/ 08 января 2020

Я использую Firebase. В моем приложении и в моей базе данных у меня есть список избранного для каждого пользователя, но у меня возникает проблема, когда я нажимаю на иконку Добавить избранное в утилите. Просмотр отмечен дважды, как показано на рисунке ниже (у меня есть 2 отдельный значок, значок для добавления в избранное, значок для удаления) enter image description here

Это следующий исходный код (этот код в держателе 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);

                        }
                    });
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...