Android studio 从Firebase数据库检索嵌套数据
我想提取“订单”节点下的全部数据,请告诉我如何在Kotlin中为android建模我的数据类 我尝试过这种造型, 获取(Orders/uid/)的引用后 Order.ktAndroid studio 从Firebase数据库检索嵌套数据,android-studio,kotlin,firebase-realtime-database,Android Studio,Kotlin,Firebase Realtime Database,我想提取“订单”节点下的全部数据,请告诉我如何在Kotlin中为android建模我的数据类 我尝试过这种造型, 获取(Orders/uid/)的引用后 Order.kt data class Order( val items:ArrayList<Myitems>=ArrayList(), val timeStamp:Long=0, val totalCost:Int=0 ) data class Order( val items: ArrayList<Hash
data class Order(
val items:ArrayList<Myitems>=ArrayList(),
val timeStamp:Long=0,
val totalCost:Int=0
)
data class Order(
val items: ArrayList<HashMap<String, Any>> = ArrayList(),
val timeStamp: Long = 0,
val totalCost: Int = 0
)
经过大量的网上思考和研究。我终于能够对我的类进行建模,并调用增值事件监听器。下面是: Order.kt
data class Order(
val items:ArrayList<Myitems>=ArrayList(),
val timeStamp:Long=0,
val totalCost:Int=0
)
data class Order(
val items: ArrayList<HashMap<String, Any>> = ArrayList(),
val timeStamp: Long = 0,
val totalCost: Int = 0
)
MainActivity.kt
val uid = FirebaseAuth.getInstance().uid
val ref = FirebaseDatabase.getInstance().getReference("Orders/$uid")
ref.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onCancelled(error: DatabaseError) {
//
}
override fun onDataChange(p0: DataSnapshot) {
p0.children.forEach {
val order = it.getValue(Order::class.java)
ordList.add(order!!)
}
Log.d("hf", ordList.toString())
}
})
为什么在orders节点和实际订单号之间有Firebase生成的密钥?实际上,对于不同的用户,在orders节点中,我将有一个用户ID列表,在每个用户ID中,我将有他/她的所有订单的列表。复杂吗?我可以做其他的事情吗?取决于你的用例。我通常会将所有订单直接存储在订单数组中,并为每个订单添加一个用户id属性。@Tom好的,我也会尝试。你能告诉我我是否应该像上面那样制作数据类吗?(在编辑的问题中)
val uid = FirebaseAuth.getInstance().uid
val ref = FirebaseDatabase.getInstance().getReference("Orders/$uid")
ref.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onCancelled(error: DatabaseError) {
//
}
override fun onDataChange(p0: DataSnapshot) {
p0.children.forEach {
val order = it.getValue(Order::class.java)
ordList.add(order!!)
}
Log.d("hf", ordList.toString())
}
})