【问题标题】:Not able to append values into the data class无法将值附加到数据类中
【发布时间】:2021-05-10 17:43:25
【问题描述】:

我正在尝试从 Firestore 下载数据并将其添加到 POJO 类,但是当我使用添加所有函数时,所有以前的元素都从列表中删除,每次我想将值附加到列表中时,只剩下一个元素。

我的代码:

  db.collection("Posts").document(postId).collection("Groups")
            .get()
            .addOnSuccessListener { result ->
                for (document in result) {
                    Log.d(myTAG, "${document.id} => ${document.data}")
                    arr.add(document.id)

                        Log.d(myTAG, "Documents are  $document")
                        db.collection("Users")
                            .whereEqualTo("id", document.id)
                            .get()
                            .addOnCompleteListener {
                                if (it.isSuccessful){
                                    val objects2: List<Users> = it.result?.toObjects(Users::class.java) as List<Users>
                                    val list2 = mutableListOf<Users>()
                                    list2.addAll(objects2)
                                    userList.value = list2
                                    Log.d(myTAG," list size "+ list2.size.toString())


                                }
                            }

                }
            }
            .addOnFailureListener { exception ->
                Log.d(myTAG, "Error getting documents: ", exception)
            }

【问题讨论】:

    标签: android firebase kotlin google-cloud-firestore


    【解决方案1】:

    当我使用 add all 函数时,所有以前的元素都从列表中删除,每次只剩下一个元素

    发生这种情况是因为在 for 循环的每次迭代中都会创建一个新的可变列表。您应该只创建一个实例。所以要解决这个问题,请移动以下代码行:

    val list2 = mutableListOf<Users>()
    

    就在for循环开始的那一行之前:

    for (document in result) { ... }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      • 2022-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      相关资源
      最近更新 更多