【问题标题】:retrieving data from Firebase database in android studios with the kotlin language [duplicate]使用 kotlin 语言从 android studios 中的 Firebase 数据库中检索数据
【发布时间】:2021-02-18 01:38:07
【问题描述】:

我是 firebase 数据库的新手,并且仍在学习有关它的一些知识。我正在尝试从实时数据库中提取数据,但我很难做到。

我的数据库布局是这样的。

users 
      --UId
           --firstname
           --lastname
           --dateofbirth
           --mobile
           --email
           --type

我的用户模型

data class User(val uid: String? = "",
                val Firstname:String = "",
                val Lastname:String = "",
                val Mobile:String ="",
                val Dateofbirth:String ="",
                val email:String = "",
                val type: String = ""
){
    constructor(): this ("","","","","","","")
}

我正在尝试提取名字、姓氏、手机、出生日期和电子邮件,并将其附加到我的个人资料文本字段中,供他们使用 fname、lname、dob、email

这是我正在使用的代码

 private fun getUserInfo() {
        val uid = FirebaseAuth.getInstance().currentUser!!.uid
        val ref = FirebaseDatabase.getInstance().reference
        val uidRef = ref.child("users").child(uid)
        val valueEventListener: ValueEventListener = object : ValueEventListener {
            override fun onDataChange(dataSnapshot: DataSnapshot) {
            for (I in dataSnapshot.children){



            }

            }

            override fun onCancelled(databaseError: DatabaseError) {
                Log.d("error", databaseError.message)

            }

        }
        uidRef.addListenerForSingleValueEvent(valueEventListener)
    }

我如何提取这些信息?

感谢您的帮助!

【问题讨论】:

    标签: android firebase kotlin firebase-realtime-database


    【解决方案1】:

    建议对这样的属性名称使用驼峰命名方案:

    val firstName: String = " "
    val secondName: String = " "
    

    您可以像这样提取用户信息:

     private fun getUserInfo() {
            val uid = FirebaseAuth.getInstance().currentUser!!.uid
            val ref = FirebaseDatabase.getInstance().reference
            val uidRef = ref.child("users").child(uid)
            val valueEventListener: ValueEventListener = object : ValueEventListener {
                override fun onDataChange(dataSnapshot: DataSnapshot) {
                    val user = dataSnapshot.getValue(User::class.java)
                    //user.firstName
                    //user.lastName
                    //...
                   
                }
    
                override fun onCancelled(databaseError: DatabaseError) {
                    Log.d("error", databaseError.message)
    
                }
    
            }
            uidRef.addListenerForSingleValueEvent(valueEventListener)
        }
    

    【讨论】:

    • 链接失效
    • 找不到任何关于我应该如何过滤该信息并将其附加到我的 android 应用程序 user?.firstName user?.lastName user?.email user 的 UI 的用户配置文件区域的任何内容?.Mobile user?.dateOfBirth 也是这样出来的。
    猜你喜欢
    • 1970-01-01
    • 2022-09-29
    • 2016-07-16
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多