【发布时间】:2021-02-12 09:44:28
【问题描述】:
当我查询用户的昵称时,我可以读取昵称,但我无法从查询中取出具有正确昵称的变量。
//Get data from login user (authentication user)
val user = Firebase.auth.currentUser
//Get his mail
val mail = user?.email.toString()
//Do query to get nickname (from users collection with user's mail)
val usuaris = db.collection("usuaris")
val query = usuaris.whereEqualTo("mail", mail).get()
.addOnSuccessListener {
document ->
if (document != null){
//save document to val usuari
val usuari = document.toObjects(Usuari::class.java)
//save string nickname to usuariStr
usuariStr = usuari[0].nickname
//the log show the correct nickname
Log.i("usuari_query",usuariStr)
}
}
.addOnFailureListener { exception ->
Log.w(TAG, "Error getting documents: ", exception)
}
//The usuariStr= "" is deleted when exit from query, and I can't read nickname
//dataclass to get nickname from query
data class Usuari(var adreca: String = "", var cognoms: String ="", var contrasenya:String="",
var mail: String="", var nickname: String="", var nom: String="",
var poblacio: String="", var telefon:String="")
【问题讨论】:
-
我尝试使用一个函数来插入查询,它可以工作。我不知道这是否是更好的解决方案...