【发布时间】:2021-04-10 02:22:21
【问题描述】:
如何使用以下结构从我的数据库中获取所有用户的 UID 并将其保存在我的 FirebaseRecyclerviewUI 中?我已经尝试了几个小时,但我的回收站视图仍然显示为空。
-User
|
-uid
|
-advert
|
-bus_name
-category
-purl
-id
下面是我的 getter/setter BusinessListData 类,用作接收值并将它们发送到 recyclerview 的模型
class BusinessListData {
var id: String = ""
var propixurl: String = ""
var business_name: String = ""
var category: String = ""
constructor(){
}
constructor(id: String, propixurl: String, business_name: String, category: String) {
this.id = id
this.propixurl = propixurl
this.business_name = business_name
this.category = category
}
fun getID(): String{
return id
}
fun getUrl(): String{
return propixurl
}
fun getBusName(): String{
return business_name
}
fun getCate(): String{
return category
}
fun setID(id: String){
this.id = id
}
fun setUrl(propixurl: String){
this.propixurl = propixurl
}
fun setBusName(business_name: String){
this.business_name = business_name
}
fun setCate(category: String){
this.category = category
}
}
我的 FirebaseRecyclerViewUI 详细信息如下。 mDatabase 是对数据库的引用,我尝试根据我的 Log.v 值获取成功的数据快照。问题是我无法在 Firebase 实时数据库中的广告树下获取特定值
mDatabase = FirebaseDatabase.getInstance().reference
val options: FirebaseRecyclerOptions<BusinessListData> = FirebaseRecyclerOptions.Builder<BusinessListData>()
.setQuery(mDatabase, object: SnapshotParser<BusinessListData> {
override fun parseSnapshot(snapshot: DataSnapshot): BusinessListData {
Log.v("snapshotfire", snapshot.toString()) //returns all snapshot values
Log.v("snapshotfire", snapshot.child("purl").toString()) // this returns null
Log.v("snapshotfire", snapshot.child("bus_name").getValue().toString()) //this also returns null
return BusinessListData(snapshot.child("id").getValue().toString(),
snapshot.child("purl").getValue().toString(),
snapshot.child("bus_name").getValue().toString(),
snapshot.child("category").getValue().toString()
)
}
})
.build()
【问题讨论】:
-
请编辑您的问题并将您的数据库结构添加为 JSON 文件或至少是屏幕截图,而不是描述您的数据库的外观。
标签: android firebase-realtime-database android-recyclerview firebaseui kotlin-android-extensions