如何从Firebase数据库中使用child *检索数据并填充User对象类。
Firebase示例:
并在检索到可以使用的数据后,即: 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!!.firstName
和user!!.lastName
。
关于firebase - 从Firebase数据库中检索带有子级的数据,并使用Kotlin填充对象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146092/