我正在尝试将文本添加到变量中,并在对话框中使用该变量,但不会添加任何内容。 这是我的代码:
var dex = ""
firestoreInstance.collection("test").whereEqualTo("module", listMod[spinnerMod.selectedItemPosition].ID).get().addOnCompleteListener { task ->
if (!task.result.isEmpty) for (document in task.result) {
dex += "Success"
} else {
dex += "Fail"
}
}
val builder = AlertDialog.Builder(this)
builder.setMessage(dex).setTitle(dex).show()
这是输出:
我想念什么?
答案 0 :(得分:1)
Firebase Task
异步执行。发生的情况是,您触发了查询,并在AlertDialog
仍然为空字符串的情况下立即放置了dex
。然后,查询完成后,它会更改dex
的值,但永远不会再次读取。
您可以改为在任务完成时显示对话框:
firestoreInstance.collection("test").whereEqualTo("module", listMod[spinnerMod.selectedItemPosition].ID).get().addOnCompleteListener { task ->
var dex = ""
if (!task.result.isEmpty) for (document in task.result) {
dex += "Success"
} else {
dex += "Fail"
}
val builder = AlertDialog.Builder(this)
builder.setMessage(dex).setTitle(dex).show()
}