有没有办法在 addOnCompleteListener 的代码之前运行 Cloud Firestore 的代码?

时间:2021-02-03 17:39:03

标签: android firebase google-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")

0 个答案:

没有答案
相关问题