Счетчик приращений и декретов FireStore Transactions получает непоследовательный результат

Вот код транзакции: –

var sfDocRef = firebaseCloudStore.collection("New").document(documentRef.get(pos)) firebaseCloudStore.runTransaction(Transaction.Function { transaction - > val snapshot = transaction.get(sfDocRef) var newlikes: Double if (isliked == true) { newlikes = snapshot.getDouble("likes") !!+1 } else { newlikes = snapshot.getDouble("likes") !!-1 } transaction.update(sfDocRef, "likes", newlikes) }).addOnSuccessListener { var ref = firebaseCloudStore.collection("New").document(documentRef.get(pos)).get().addOnCompleteListener { list = it.result.toObject(New::class.java) arraylist.get(pos).likes = list.likes arraylist.get(pos).isliked = !arraylist.get(pos).isliked adapter.notifyItemChanged(pos) } }.addOnFailureListener(OnFailureListener { e - > Log.w("TAG", "Transaction failure.", e) }) 

Здесь я реализовал транзакции FireStore, как упоминалось в документах, но все еще получаю противоречивый результат, например, если вы нажимаете кнопку как многократно быстро, тогда результат будет либо больше, либо меньше. Есть ли ошибка в коде, или я делаю что-то неправильно?

Intereting Posts
Анимационный набор, эффект встряхивания Объединение Java с Kotlin в Android В Kotlin, как передать параметр, чтобы асинхронная область сохранила его? Модуль библиотеки Android Kotlin экспортируется с плагином gradene maven-publish, не добавляющим зависимости SortedList IndexOutOfBoundsException: обнаружена несогласованность. Недопустимая позиция позиции при удалении последнего элемента Это правильный способ бросить Идеальный Android Studio Kotlin gitignore Могу ли я получить доступ к «закрывающему» объекту для вызова встроенной функции в Котлин? Как сделать метод param изменчивым в Kotlin? Kotlin 1.1.3-2 Невозможно создать экземпляр фрагмента в OnResume Android Исключенное исключение при сжатии растрового изображения внутри AsyncTask не останавливает выполнение Преобразовать ByteArrayOutputStream в json в Котлин Пустой конструктор для объекта kotlin для использования Firebase Дооснащение 2 Длина содержимого RequestBody больше, чем размер файла Исключение NullPointerException при попытке доступа к унаследованному полю