Невозможно добавить в список Mutable - PullRequest
0 голосов
/ 29 мая 2020

Я использую список 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 = "") {}

Любая помощь будет принята с благодарностью. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...