我想在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")