我在帖子上开发了一个点赞按钮,当它点击时,每次都会加1。我只想一旦用户单击该按钮,它就只计数到一,但是当多次单击该按钮时,同一用户的计数会增加,这不应该发生?
我只想由同一用户单击一次、更新一次计数器,不再需要了
我该如何进行?
我正在使用firestore中的事务来完成操作
private void transactionlPostUserl1() {
Log.d(TAG,"hello4");
final DocumentReference PostUserRef = db.collection("users").document(PostAuthorID);
db.runTransaction(new Transaction.Function<Void>() {
@Override
public Void apply(Transaction transaction) throws FirebaseFirestoreException {
DocumentSnapshot documentSnapshot2 = transaction.get(PostUserRef);
long l11 = documentSnapshot2.getLong("l2");
{ transaction.update(PostUserRef, "l2", l11+1);
return null;
}
}
}).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void result) {
Log.d(TAG, "Transaction success: " + result);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "Transaction failure.", e);
}
});
}
最佳答案
保存对每个帖子点赞的每个用户的 ID,然后检查该人是否已经点赞?然后你就可以统计点赞的人数了。
关于java - 如何确保多次单击单个按钮不会重复结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58060260/