Я пытаюсь перезаписать один документ в Kotlin. Для создания документа пользователь дает целевую оценку и оценку («Оценка»: 0), создаваемую автоматически, затем при каждом нажатии на изображение число будет увеличиваться, но проблема в этом; если целевая оценка, например, 10, когда я нажимаю на результат оценки изображения, получается значение 10 (целевая оценка) вместо 1.
Вот мой код. Спасибо!
fun pointClicked(view: View) {
db.collection(auth.currentUser!!.email.toString()).document(documentId!!).collection("tasks").whereEqualTo("taskDocId", taskDocumentId).addSnapshotListener { snapshot, exception ->
if (exception != null) {
Toast.makeText(applicationContext,exception.localizedMessage.toString(),Toast.LENGTH_LONG).show()
} else {
if (pointTextView.text.toString().toInt() == targetPointTextView.text.toString().toInt()) {
println("Task completed")
} else if (pointTextView.text.toString().toInt() < targetPointTextView.text.toString().toInt()) {
var increasePoint = pointTextView.text.toString().toInt() + 1
val setPoint = hashMapOf("point" to increasePoint)
db.collection(auth.currentUser!!.email.toString()).document(documentId!!).collection("tasks").document(taskDocumentId!!).set(setPoint, SetOptions.merge())
println("Task is not completed")
}
}
}
}
РЕДАКТИРОВАТЬ: Когда я касаюсь imageView один раз, увеличение точки muss +1, например, значение точки равно 0 («точка»: 0), когда я касаюсь imageView один раз, значение точки должно быть 1 («точка»: 1). Но оно не увеличивается +1, точка увеличивается, пока значение не станет равным значениям targetPoint.
Вот новые коды:
fun pointClicked(view: View) {
db.collection(auth.currentUser!!.email.toString()).document(documentId!!).collection("tasks").whereEqualTo("taskDocId", taskDocumentId).addSnapshotListener { snapshot, exception ->
if (exception != null) {
Toast.makeText(applicationContext,exception.localizedMessage.toString(),Toast.LENGTH_LONG).show()
} else {
if (snapshot != null) {
if (!snapshot.isEmpty) {
val documents = snapshot.documents
for (document in documents) {
val point = document.get("point") as Long
val targetPoint = document.get("targetPoint") as Long
pointTextView.text = point.toString()
targetPointTextView.text = targetPoint.toString()
if (pointTextView.text.toString().toInt() == targetPointTextView.text.toString().toInt()) {
println("Task completed")
} else if (pointTextView.text.toString().toInt() < targetPointTextView.text.toString().toInt()) {
var increasePoint = pointTextView.text.toString().toInt() + 1
val setPoint = hashMapOf("point" to increasePoint)
db.collection(auth.currentUser!!.email.toString()).document(documentId!!).collection("tasks").document(taskDocumentId!!).set(setPoint, SetOptions.merge())
println("Task is not completed")
}
}
}
}
}
}
}