从Firebase返回字符串addOnSuccessListener

时间:2019-03-09 17:53:17

标签: function firebase kotlin google-cloud-firestore

我正在为学校项目编程多人游戏的后端。我需要从一组用户中加载随机文档(更具体地说是用户的用户名)。那部分起作用。基本上,我遇到一个问题,当我调用函数时,用户名保持为空(“”),而不是应随docRef.get()函数加载的用户名。下面是我编写的代码,但是我发现它不仅会在此函数中发生,还会在所有使用docRef.get()函数的代码中发生。

任何帮助将不胜感激,因为我在这个问题上已经停留了一个多星期。这是我在Kotlin / Firebase中的第一个项目。

谢谢。

fun getRandomPlayerUsername() : String{

     var db = FirebaseFirestore.getInstance() // Loads Firebase functions

     var loadedPlayer:LoadedPlayer? = null

     val random = (0 until 3).random()

     val docRef = db.collection("users").orderBy("username").limit(3)

     var username:String = ""



     docRef.get().addOnSuccessListener { documentSnapshot ->

          val playerList: MutableList<out LoadedPlayer> = documentSnapshot.toObjects(LoadedPlayer()::class.java)

          loadedPlayer = playerList[random]

          username = loadedPlayer?.username.toString()
     }

     return username
}

0 个答案:

没有答案