【发布时间】:2021-01-24 15:01:28
【问题描述】:
我在这里所做的是将用户组作为哈希图,然后获取每个组的信息并用它做其他事情。但在 foreach 循环结束时,我的“组”列表为空。我能做些什么来等待 foreach 循环完成吗?谢谢。
db
.child("users")
.child(firebaseUser.uid)
.get()
.addOnCompleteListener { task ->
if (task.isSuccessful) {
val document = task.result
if (document != null && document.value != null) {
val groupsObject =
document.value["groups"] as HashMap<String, Boolean>
for (groupID in groupsObject.keys) {
db
.child("groups/$groupID")
.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
db
.child("users")
.child(friendID)
.get()
.addOnCompleteListener { task ->
// check for something
// add to groups list if data is OK
}
}
override fun onCancelled(error: DatabaseError) {
// TODO: ...
}
})
}
// here "groups" data is empty, because that for each loop above
// hasn't finshed yet looping, and thus my list is displayed empty
groupsAdapter = GroupsAdapter(this@GroupsActivity, groups)
recyclerView.adapter = groupsAdapter
}
}
}
【问题讨论】:
标签: android kotlin firebase-realtime-database