android - 有没有办法在 addOnCompleteListener 的代码之前运行 Cloud Firestore 的代码?
问题描述
我想在前一个之后运行 addOnSuccessListener 中的代码,但是与 Cloud Firestore 相关的代码在 addOnSuccessListener 中的代码之后运行
db.collection("users").get().addOnSuccessListener { users ->
for(documento in users){
documento.reference.collection("puntuaciones").
document("puntuaciones").get().addOnSuccessListener {
var partidas = it.get("numPartidas") as Long? ?: 0
println("EMAIL: ${documento}, PARTIDAS: $partidas")
while (partidas > 0) {
entrada = Array<String>(2) { _ -> ""}
entrada[0]=email ?:"Sin registrar"
entrada[1] = java.lang.String.valueOf(it.get(partidas.toString())) as String
puntuaciones.add(entrada)
partidas--
}
}
rankingRecycler.layoutManager = LinearLayoutManager(
this,
LinearLayoutManager.VERTICAL,
false
)
println("PUNTUACIONES $puntuaciones")
var adaptador = AdapterRanking(puntuaciones)
rankingRecycler.adapter = adaptador
}
它打印“PUNTUACIONES []”,因为它在代码的最后一部分之前运行,我不知道为什么输出是:
PUNTUACIONES []
EMAIL: ..., PARTIDAS: 4
EMAIL: ..., PARTIDAS: 1
EMAIL: ..., PARTIDAS: 0
EMAIL: ..., PARTIDAS: 5
它应该是:
EMAIL: ..., PARTIDAS: 4
EMAIL: ..., PARTIDAS: 1
EMAIL: ..., PARTIDAS: 0
EMAIL: ..., PARTIDAS: 5
PUNTUACIONES [.........] //(one per each "partida")
解决方案
推荐阅读
- r - 删除文本中数字符比大于平均值的所有句子
- python - 图像去模糊
- c# - Xamarin Android WebView 访问 sessionStorage 返回 null
- django - 如何从 django-filters.FilterList 获取请求参数
- spring - 使用 orderBy 的 Spring JPA 命名查询不起作用
- docker - 没有 docker pull 的 Docker 保存
- node.js - Heroku 通过 POST 请求、multer 或 nodemailer H=18 反复崩溃
- ruby - Ruby:使用数组列表来选择特定的列
- c# - 在 C# 中的 OracleDataReader 中创建变量
- python - 在 Django / Python 中从头到尾跟踪单个请求