Я использую список Mutable, поэтому могу передать его в Recycler View. все идет гладко, когда я вручную добавляю изменяемый список; однако, когда я использую for l oop, чтобы добавить его при извлечении данных из Firebase, список Mutable ведет себя странно. Я использовал отладчик и журнал, чтобы определить, в чем проблема, в течение многих часов, но я не мог найти, в чем проблема! Во время отладки я обнаружил, что изменяемый список (listOfKeys) внутри l oop извлекает данные из Firebase, но по неизвестной причине, когда он go из для l oop, он не содержит никаких данных из для l oop, только данные ранее для l oop !!
val listOfKeys: MutableList<OneKeyEvent> = mutableListOf(OneKeyEvent())
listOfKeys.add(OneKeyEvent("hello", "test")) // it is working
val user = auth.currentUser
val db = FirebaseFirestore.getInstance()
val currentUser = user!!.uid
//Log.d("!current user", currentUser)
val query = db.collection("Accounts").document(currentUser).collection("Keys").get()
query.addOnSuccessListener { result ->
for (document in result) {
Log.d("!DATA", "${document.id} => ${document.data}") // I can see the data
listOfKeys.add(
OneKeyEvent(
document.data["account"].toString(), document.data["category"].toString()
)
)
}
}.addOnFailureListener { exception ->
Log.d("!ERROR", "Error getting documents:", exception)
}
OneKeyEvent - это просто класс данных
data class OneKeyEvent(var key_account: String = "", var key_category: String = "") {}
Любая помощь будет принята с благодарностью. Спасибо.