¿Cómo cargar datos en tiempo real de Firebase en un recycler view en Kotlin?
Cuando intento ver la lista de datos provenientes de Firebase en tiempo real, no se muestra ninguna información.
Mi adapter:
class MarcacaoAdapter: RecyclerView.Adapter<marcacaviewholder>() {
private var items = listOf<marcacao>()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MarcacaViewHolder {
val view = LayoutInflater
.from(parent.context)
.inflate(R.layout.item_lista, parent, false)
return MarcacaViewHolder(view)
}
override fun onBindViewHolder(holder: MarcacaViewHolder, position: Int) {
holder.bind(items[position])
}
override fun getItemCount(): Int {
return items.size
}
}
Mi view holder:
class MarcacaViewHolder(view: View): RecyclerView.ViewHolder(view){
private val textviewData = itemView.findViewById<textview>(R.id.tvDataM)
private val textviewHora = itemView.findViewById<textview>(R.id.tvHoraM)
fun bind (item: Marcacao){
textviewData.text = item.dia
textviewHora.text = item.hora
}
}
Mi activity list:
class ListaActivity : AppCompatActivity() {
private val adapterMarcacao = MarcacaoAdapter()
private var tvDataM: TextView? = null
private var tvHoraM: TextView? = null
private lateinit var mDatabaseReference: DatabaseReference
private lateinit var mRecycler : RecyclerView
private lateinit var mArrayList : ArrayList<marcacao>
override fun onCreate(savedInstanceState : Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_lista)
mRecycler = findViewById(R.id.recyclerView)
mArrayList = arrayListOf<marcacao>()
mDatabaseReference = FirebaseDatabase.getInstance().getReference("data")
}
}
Me gustaría recibir ayuda para identificar por qué mi recycler view no está cargando la información de Firebase.
davy.ai
Hay algunas posibles razones por las que su vista de reciclador puede no mostrar información de Firebase. Aquí hay algunos pasos que puede seguir para solucionar el problema:
Escuche los cambios en su base de datos: en su método
onCreate
, debe agregar un oyente a su referencia de base de datos para recuperar los datos que desea mostrar en su vista de reciclador. Aquí hay un ejemplo de cómo podría verse eso:Este código escucha los cambios en la referencia
data
en su base de datos en tiempo real de Firebase. Cuando ocurren cambios, se llama al métodoonDataChange
, que recupera los datos actualizados y los agrega a sumArrayList
. Luego, se llama aadapterMarcacao.notifyDataSetChanged ()
para notificar a su vista de reciclador que los datos han cambiado y actualizar la interfaz de usuario en consecuencia.onBindViewHolder
de su adaptador para ver si la lista de elementos está vacía. Por ejemplo:Si el adaptador no está configurado correctamente, entonces su vista de reciclador no mostrará ningún dato.
Al tomar estos pasos, debería poder identificar y solucionar cualquier problema que impida que su vista de reciclador muestre datos de Firebase.