【发布时间】:2022-02-19 05:49:26
【问题描述】:
我有一个包含我的 Firebase 实时数据库键的地图,并且想要检索相应的键数据并将其放入结果数据列表中。如何按顺序执行循环?基本上,阻塞 Firebase 监听器直到它得到结果,然后才迭代到循环中的下一个键。
fun functionA() {
val resultFileDataList = List<DataSnapshot>()
for ((key, value) in filesMap) {
val dbRef = database.child("files").child(key)
dbRef.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onCancelled(p0: DatabaseError) {}
override fun onDataChange(dataSnapshot: DataSnapshot) {
resultFileDataList.add(dataSnapshot)
}
})
}
callFunctionB() // call this function only after all the data in the loop above is retrieved
}
我尝试了runBlocking {},但没有成功。
【问题讨论】:
-
您知道添加所有文件后列表中应该存在多少元素吗?是固定数字吗?
标签: android firebase kotlin firebase-realtime-database google-cloud-platform