0

Firebase Database Image

I have seen similar questions but none of the answers have helped me so far. I have a user id key and in that for every post, I have a key and I want to implement the like feature for each post but when a try to retrieve the key for a particular post, I get the last key because the onChildAdded method is called for all the children once but I want the key of that particular post.

likeReference = FirebaseDatabase.getInstance().getReference().child("Post").child(uid);
    likeReference.keepSynced(true);
    likeReference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            Log.i("onChildAdded", "Method invoked");
            //progressBar.setVisibility(View.VISIBLE);
            Post post = dataSnapshot.getValue(Post.class);
            String key = dataSnapshot.getKey();

            secondReference = likeReference.child(key);

            //progressBar.setVisibility(View.INVISIBLE);
        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }

    });

    like.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.i("Like:","Like clicked");
            if(post.isLiked()){
                post.setLiked(false);
                secondReference.child("liked").setValue(post.isLiked());
                like.setImageResource(R.drawable.ic_thumb_up);
            }else{
                post.setLiked(true);
                secondReference.child("liked").setValue(post.isLiked());
                like.setImageResource(R.drawable.like);
            }
        }
    });
Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
Kunal Rai
  • 340
  • 2
  • 6
  • 15

0 Answers0