如何使用FirebaseAdapter读取Firebase中子节点下的一系列项目

时间:2018-01-06 16:25:52

标签: android firebase kotlin

正如标题所述,我试图在Firebase中的嵌套节点下读取一堆节点,并使用FirebaseAdapter显示信息。我使用parseSnapshot方法试图获取我需要的信息,但我认为我误解了如何获取信息。数据库的用户部分结构如下:

enter image description here

我想 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

}

0 个答案:

没有答案