【问题标题】:How to pass key as a value through a database model class in Kotlin如何通过 Kotlin 中的数据库模型类将键作为值传递
【发布时间】:2022-02-08 14:29:45
【问题描述】:

这是我的数据库的样子:

Realtime Database Layout

这是我的模型类:

class Registrations {
private var userEmail:String =""
private var verified:Boolean = false


constructor()
constructor(userEmail:String, verified:Boolean){
    this.userEmail = userEmail
    this.verified = verified

}


fun getUserEmail():String{
    return userEmail
}

fun setUserEmail(userEmail: String){
    this.userEmail = userEmail
}

fun getVerified():Boolean{
    return verified
}

fun setVerified(verified: Boolean){
    this.verified = verified
}
}

我正在使用 RecyclerAdapter 来获取数据,我的代码是:

private fun getRegistrations() {
    FirebaseDatabase.getInstance().reference.child("Registrations").addListenerForSingleValueEvent(object : ValueEventListener {
        override fun onDataChange(dataSnapshot: DataSnapshot) {
            if (dataSnapshot.exists()) {
                itemList!!.clear()
                for (snapshot in dataSnapshot.children) {
                    Log.d("ITEM", snapshot.toString())

                    val item = snapshot.getValue(Registrations::class.java)

                    itemList!!.add(item!!)
                }
                registrationsAdapter!!.notifyDataSetChanged()
            }
        }

        override fun onCancelled(error: DatabaseError) {
            TODO("Not yet implemented")
        }
    })
}

}

现在您可以在数据库图像中看到如何将键值(用户的电子邮件)作为值传递给模型类?

我尝试创建一个对象,但我做错了/不知道如何做,感谢任何帮助。

此外,此应用正在生产中,因此我现在无法更改数据以将电子邮件作为 firebase 中的值。

感谢任何帮助。

【问题讨论】:

    标签: android firebase kotlin firebase-realtime-database google-cloud-platform


    【解决方案1】:

    始终建议类中的字段必须与数据库中的字段匹配。因此,如果数据库中的一个节点包含两个字段,verifiedactivationCode,那么该类应该包含相同的字段。

    此应用正在生产中,因此我现在无法更改数据以将电子邮件作为 fFirebase 中的值。

    因此,如果您无法将电子邮件添加为值,我怀疑这是一个非常简单的更新操作,那么您只能读取密钥并使用 setter 像这样添加对象:

    val item = snapshot.getValue(Registrations::class.java)
    val userEmail = snapshot.getKey()
    item.setUserEmail(userEmail)
    itemList!!.add(item!!)
    

    【讨论】:

      猜你喜欢
      • 2018-11-29
      • 1970-01-01
      • 2020-07-31
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2018-08-15
      • 1970-01-01
      相关资源
      最近更新 更多