Я пытаюсь обновить лайки, сначала прочитав текущее количество лайков, а затем увеличивая значение на 1, однако код не выполняется в той последовательности, которую я ожидал.Как я могу сразу обновить лайки сразу после получения значения лайков в datasnaphot?
Попытка реализовать лайки:
viewHolder.like_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
likes = 0;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("posts");
ref.child( getRef(viewHolder.getAdapterPosition()).getKey()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//get the current number of likes on the post
likes = dataSnapshot.child("likes").getValue(Integer.class);
Log.w("likes", "likes is " + likes);
// hasRead = true;
Log.w("status", "is "+ hasRead );
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
//add a like to exisitng likes
ref.child(getRef(viewHolder.getAdapterPosition()).getKey().toString()).child("likes").setValue(likes+=1);
Log.w("action", "You've liked post with key "+ getRef(viewHolder.getAdapterPosition()).getKey() + " position is "+ viewHolder.getAdapterPosition());
}
});