【问题标题】:Get field of document Cloud Firestore (AndroidStudio-Kotlin)获取文档 Cloud Firestore 的字段(Android Studio-Kotlin)
【发布时间】: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="")

【问题讨论】:

  • 我尝试使用一个函数来插入查询,它可以工作。我不知道这是否是更好的解决方案...

标签: android firebase kotlin


【解决方案1】:

这段代码是正确的,解决方案是在 .addOnSuccessListener 里面放一个函数来做更新、插入或操作结果。

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多