Я делаю обзор переработчика. при использовании init block возникла проблема. Я ожидал, что код выполняется по порядку. но он вышел из строя
Какой-то код:
inner class TodoListFragmentRecyclerViewAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
val doListDTOs = ArrayList<DoListDTO>()
init {
Log.e("1","1")
doListListenerRegistration = fireStore.collection("doList").whereEqualTo("doListName",todoList_name).orderBy("doListTimestamp", Query.Direction.DESCENDING).limit(100)
.addSnapshotListener { querySnapshot, firebaseFirestoreException ->
if (querySnapshot == null) return@addSnapshotListener
doListDTOs.clear()
for (snapshot in querySnapshot.documents) {
val item = snapshot.toObject(DoListDTO::class.java)
doListDTOs.add(item!!)
Log.e("2",doListDTOs.toString())
notifyDataSetChanged()
}
}
Log.e("3",doListDTOs.toString())
}
}
Я хочу, чтобы журнал показывался, как показано ниже порядка 1 -> 2 -> 3
, но фактический результат равен 1 -> 3 -> 2
, почемуthis?
В качестве дополнительной проблемы, из-за вышеуказанного порядка, последний doListDTOs.toString () является нулевым в журнале 3. но doListDTOs.toString в журнале 2 имеет некоторое значение. Если это не проблема заказа, я был бы признателен, если бы вы сказали мне, в чем проблема.