gpt4 book ai didi

firebase - 从Firebase数据库中检索带有子级的数据,并使用Kotlin填充对象类

转载 作者:行者123 更新时间:2023-12-02 13:22:24 25 4
gpt4 key购买 nike

如何从Firebase数据库中使用child *检索数据并填充User对象类。

Firebase示例:

  • 用户
  • uid:131232
  • 名字:John
  • lastName:Doe
  • 位置
  • lat *:15.2512312
  • lon *:-12.1512321
  • 聊天
  • -k1231 *:真
  • -k1285 *:真

  • 并在检索到可以使用的数据后,即: User.firstName User.location.lat 等。

    先感谢您。

    最佳答案

    正如Sam Stern在回答中提到的那样,最好分别为每个类创建一个表示形式。我将在Kotlin中为您编写相应的类。

    这是User类:

    class User (
    val firstName: String = "",
    val lastName: String = "",
    val userLocation: UserLocation? = null
    )

    这是 UserLocation类:
    class UserLocation (
    val lat: Int = 0,
    val lng: Int = 0
    )

    to query this User 1332 and cast it to the User.class object



    请使用以下代码行:
    val uid = FirebaseAuth.getInstance().currentUser!!.uid
    val rootRef = FirebaseDatabase.getInstance().reference
    val uidRef = rootRef.child("users").child(uid)
    val valueEventListener = object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
    val user = dataSnapshot.getValue(User::class.java)
    Log.d(TAG, "Lat/Lng: " + user!!.userLocation!!.lat + ", " + user.userLocation!!.lng);
    }

    override fun onCancelled(databaseError: DatabaseError) {
    Log.d(TAG, databaseError.message) //Don't ignore errors!
    }
    }
    uidRef.addListenerForSingleValueEvent(valueEventListener)

    其中 uid应该具有类似于 131232的值。您的logcat中的输出将是:
    Lat/Lng: 15.2512312, -12.1512321

    您可以通过相同的方式获得: user!!.firstNameuser!!.lastName

    关于firebase - 从Firebase数据库中检索带有子级的数据,并使用Kotlin填充对象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146092/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com