'Firebase adapter is not updating the data according to my needs

My app have some users stored in firebase realtime database, each user have have a node "showGigCount" which should update if someone clicks on that user. The problem: If User 1 click on the data of User 2 then the showGigCount for User 1 will be incremented by 1 and showGigCount of User 2 will be decremented by 1. As you can see in the code I can successfully update the value of showGigCount for User 1 but the value of User 2 is not changing. Any suggestions would be highly appreciated. Below is my code. Thank You all

DashboardActivity

    fAuth = FirebaseAuth.getInstance();
            firebaseDatabase = FirebaseDatabase.getInstance();
            dRef = FirebaseDatabase.getInstance().getReference("Users");
    
            if(fAuth.getCurrentUser() != null){
                UID = FirebaseAuth.getInstance().getCurrentUser().getUid();
            }
    
                dRef.child(UID).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                        remainingClicks = Integer.parseInt(String.valueOf(snapshot.child("clicksRemain").getValue()));
                        showGigCount =  Integer.parseInt(String.valueOf(snapshot.child("showGigCount").getValue()));
                        String username =  String.valueOf(snapshot.child("name").getValue());
                        clicks.setText(String.valueOf(remainingClicks));
                        userName.setText(username);
                    }
                    @Override
                    public void onCancelled(@NonNull DatabaseError error) {
    
                    }
                });
    
            recyclerView = findViewById(R.id.dashboardRCV);
            recyclerView.setLayoutManager(new LinearLayoutManager(this));
          LoadData();
        }
    
        private void LoadData() {
            // This will display the data of a user if his showGigCount is greater than 0.
            DatabaseReference db = FirebaseDatabase.getInstance().getReference();
            DatabaseReference usersRef = db.child("Users");
            Query queryByShowGigCount = usersRef.orderByChild("showGigCount").startAt(1);
            options = new FirebaseRecyclerOptions.Builder<ModelClass>()
                    .setQuery(queryByShowGigCount, ModelClass.class)
                    .build();
            adapter = new FirebaseRecyclerAdapter<ModelClass, MyViewHolder>(options) {
                @Override
                protected void onBindViewHolder(@NonNull MyViewHolder holder, int position, @NonNull ModelClass model) {
    
                    holder.previewLink.setURL(model.getGig(), new URLEmbeddedView.OnLoadURLListener() {
                        @Override
                        public void onLoadURLCompleted(URLEmbeddedData data) {
    
                            holder.previewLink.title(data.getTitle());
                            holder.previewLink.description(data.getDescription());
                            holder.previewLink.host(data.getHost());
                            holder.previewLink.thumbnail(data.getThumbnailURL());
                            holder.previewLink.favor(data.getFavorURL());
                        }
                    });
                    String user_clicked = getRef(position).getKey();
    
                    if (user_clicked.equals(UID)){
                        holder.previewLink.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Log.d("if1 working", "it's showing the data");
                                Toast.makeText(DashboardActivity.this, "Opening your link is not allowed", Toast.LENGTH_LONG).show();
                            }
                        });
                    }else if (!user_clicked.equals(UID)){
                        holder.previewLink.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                            Log.d("Online User", "Online user clicking");
                                if (remainingClicks >= 1) { // This code increment the showGigCount of User 1 by 1.
                                    remainingClicks--;
                                    showGigCount ++;
                                    clicks.setText(String.valueOf(remainingClicks));
                                    UserClicksCounts();
                                    UserShowGigCounts();
                                    
                                    // I wrote this code so that showGigCount of User 2 will be decreased by 1 but it's not working
                                    dRef.child(String.valueOf(user_clicked)).addValueEventListener(new ValueEventListener() {
                                        @Override
                                        public void onDataChange(@NonNull DataSnapshot snapshot) {
    
                                            showGigCount--;
                                            UserGigCountDecrease();
                                            Log.d("CLicked User", "showGigCount decreased");
                                        }
    
                                        @Override
                                        public void onCancelled(@NonNull DatabaseError error) {
    
                                        }
                                    });
                                } else if (remainingClicks == 0){
                                    zeroClicks.setVisibility(View.VISIBLE);
                                }
                            }
                        });
                    }
                    }
    
                @NonNull
                @Override
                public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_layout, parent, false);
                    return new MyViewHolder(view);
                }
            };
            adapter.startListening();
            recyclerView.setAdapter(adapter);
        }
        void UserClicksCounts(){
            FirebaseDatabase database = FirebaseDatabase.getInstance();
            DatabaseReference myRef = database.getReference("Users").child(UID);
            myRef.child("clicksRemain").setValue(remainingClicks);
        }
    // This will count how many times the gig will be shown to the user
        void UserShowGigCounts(){
            FirebaseDatabase database = FirebaseDatabase.getInstance();
            DatabaseReference myRef = database.getReference("Users").child(UID);
            myRef.child("showGigCount").setValue(showGigCount);

void UserGigCountDecrease(){
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("Users").child(user_clicked);
        myRef.child("showGigCount").setValue(showGigCount);
    }

MyViewHolder Class

public MyViewHolder(@NonNull @NotNull View itemView) {
        super(itemView);

        previewLink =  itemView.findViewById(R.id.uev);
        geglink = (TextView) itemView.findViewById(R.id.rcvGigLink);
        userName = (TextView) itemView.findViewById(R.id.rcvName);
        userAbout = (TextView) itemView.findViewById(R.id.rcvAbout);
        v = itemView;
    }

Snapshot of database



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source