正如标题所述,我试图在Firebase中的嵌套节点下读取一堆节点,并使用FirebaseAdapter显示信息。我使用parseSnapshot方法试图获取我需要的信息,但我认为我误解了如何获取信息。数据库的用户部分结构如下:
我想仅 UserInfo下的信息,所以我目前有以下代码设置来初始化一个recyclerview适配器(获取信息)
private fun setupRequiredRecyclerView() {
val requiredItems = private_items_recycler
val context = this
val userDataRef = mDatabaseReference.child("Users/${prefs.UID}/UserInfo")
val mAdapter = RequiredItemsAdapter(User::class.java, R.layout.privaterecyclerview_item_row, RequiredProfileItemsViewHolder::class.java, userDataRef, context)
//load data into adapter
requiredItems.adapter = mAdapter
//add divider between items
requiredItems.addItemDecoration(Utilities.createDivider(this))
}
但是我在parseSnapshot方法中返回的数据快照似乎只包含" dateJoined"没有其他节点,我猜测我的参考有什么问题,但我不知道如何构建它 - 上升到"Users/UID"
得到我的一切但是它也让我得到UserInfoComplete,这是我不想要的(据我所知,由于FirebaseAdapter抓取每个子节点,因此无法忽略parseSnapshot中的数据)
有没有人知道我需要如何构建我的数据库引用才能获取UserInfo数据?
(如果需要,这是我当前的parseSnapshot方法):
override fun parseSnapshot(snapshot: DataSnapshot?): User {
lateinit var user : User
Log.i("Snapshot Data", snapshot!!.value.toString())
var dateJoined = snapshot!!.value
var dateOfBirth = snapshot.child("dateOfBirth").value
var gender = snapshot.child("Gender").value
var location = snapshot.child("Location").value
var phoneNumber = snapshot.child("phoneNumber").value
Log.i("Snapshot Data", snapshot!!.value.toString())
user.dateJoined = dateJoined as Long
return user
}