Это просто простое приложение для музыки c. При поиске в SearchActivity
я хочу, чтобы имя и название песни composer были найдены и перечислены вместе. Вот моя база данных реального времени в Firebase.
- Artists
- 1
- image : "Maroon 5's image"
- name : "Maroon 5"
- 2
- image : "Ruel's image_2"
- name : "Ruel"
...
- Songs
- 1
- album : "Speak Your Mind (Deluxe)"
- image : "album's image"
- name : "Anne-Marie"
- title : "2002"
- url : "song's url"
- 2
- album : "On My Way"
- image : "album's image"
- name : "Alan Walker & Sabrina Carpenter & Farruko"
- title : "On My Way"
- url : "song's url"
...
Я пытался получить доступ к этим двум базам данных в android studio, но результат данных в ArrayList (= array ) всегда был нулевым. Вот мой kotlin код в SearchActivity
при нажатии кнопки ПОИСК .
FirebaseDatabase.getInstance().getReference("Artists").addListenerForSingleValueEvent(object : ValueEventListener {
override fun onCancelled(p0: DatabaseError) {
}
override fun onDataChange(p0: DataSnapshot) {
for (artist in p0.children) {
val model = artist.getValue(Artist::class.java)
model?.let { array.add(Model(it)) }
}
}
})
FirebaseDatabase.getInstance().getRefernce("Songs").addListenerForSingleValueEvent(object : ValueEventListner {
override fun onCancelled(p0: DatabaseError) {
}
override fun onDataChanged(p0: DataSnapshot) {
for (song for p0.children) {
val model = song.getValue(Song::class.java)
model?.let { array.add(Model(it)) }
}
}
})
adapter = SearchAdapter(this@SearchActivity, array)
recyclerView.adapter = adpater
Возможно ли получить доступ к двум базам данных и получить значение массива без нулевого значения? Я знаю, что onDatachanged()
происходит поздно, но можно ли поместить значение в массив, а затем поместить его в адаптер? Буду признателен, если вы дадите мне знать в Java или Kotlin.