Как говорится в заголовке, я пытаюсь прочитать кучу узлов под вложенным узлом в Firebase и отображать информацию с помощью FirebaseAdapter. Я использую метод parseSnapshot, чтобы попытаться получить необходимую информацию, но я думаю, что не понимаю, как именно получить информацию. Пользовательский раздел базы данных структурирован так:
Я хочу только информацию в UserInfo, и поэтому в настоящее время у меня есть следующая настройка кода для инициализации адаптера recycliewiew (который получает информацию)
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, который я не хочу (и насколько я знаю, нет никакого способа игнорировать эти данные в parseSnapshot, поскольку FirebaseAdapter захватывает каждый дочерний узел)
Кто-нибудь знает, как именно мне нужно структурировать ссылку на базу данных только для получения данных 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 }