我正在为学校项目编程多人游戏的后端。我需要从一组用户中加载随机文档(更具体地说是用户的用户名)。那部分起作用。基本上,我遇到一个问题,当我调用函数时,用户名保持为空(“”),而不是应随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
}