Ich bin hier verwirrt und wirklich am Ende auf der Linie, ich habe eine ähnliche Funktion in meinem Projekt eingerichtet. Wenn ein Benutzer die gleiche Taste einmal drückt, wird der gleiche Zähler von 0 auf 1 (gefällt) aktualisiert und die gleiche Bildschaltfläche (Farbe ändern) wird erfolgreich aktualisiert. wenn sie zweimal gedrückt wird, wird der Zähler von 1 auf 0 (ungleich) aktualisiert.Firebase wie Zähler
Das Problem ist, wenn ein anderer Benutzer auch die gleiche Taste drücken, um den gleichen Beitrag zu mögen, der gleiche Zähler wird nicht von 1 bis 2 aktualisiert. Bitte helfen. Ich hoffe, das ist klar. Unten ist der Code.
viewHolder.mLikebtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mProcessLike = true;
mDatabaseLikeCount = FirebaseDatabase.getInstance().getReference().child("Notes").child(post_key).child("likecount");
mDatabaseLikeCount.keepSynced(true);
mDatabaseLike.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (mProcessLike) {
if (dataSnapshot.child(post_key).hasChild(auth.getCurrentUser().getUid())) {
Log.i("D Diary", "User has already Liked. So it can be considered as Unliked.");
mDatabaseLike.child(post_key).child(auth.getCurrentUser().getUid()).removeValue();
mDatabaseLikeCount.setValue(likeCount = likeCount - 1);
mProcessLike = false;
} else {
Log.i("D Diary", "User Liked");
mDatabaseLike.child(post_key).child(auth.getCurrentUser().getUid()).setValue(auth.getCurrentUser().getDisplayName());
mDatabaseLikeCount.setValue(likeCount = likeCount + 1);
Log.i(dataSnapshot.getKey(), dataSnapshot.getChildrenCount() + "Count");
mProcessLike = false;
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
Können Sie zeigen, wie Sie die likeCount Variable definieren? – GAlexMES
in POJO ist es bei 0 –