0 seguidores
0 seguidos
Buenos días, EDteam:
Mi sugerencia de cambio para la plataforma sería crear una sección de foros con la intención de agrupar las publicaciones que realizan los usuarios por temas. He de suponer que esto sería muy similar a las etiquetas (tags) con las que ya cuentan, pero no todos los usuarios hacen uso de ellas (y actualmente no se puede dar clic en estas para buscar contenido similar 😔). Creo que en algún momento de la plataforma estaban enlistadas en la página de inicio, pero por algún motivo las eliminaron.
De esta manera el usuario podría ir directo al foro de su preferencia para compartir sus dudas o conocimientos, suscribirse o simplemente porque no le interesa ver otras temáticas.
Aprovecho para felicitarlos también por estos 4 años, espero que sigan creando contenido de calidad y sigan creciendo con mucho éxito #NuncaTeDetengas 💪 .
¡Saludos ✌!
¡Hola comunidad 😃! Los saludo, pero antes quiero felicitar al equipo de EDteam por sus cursos de calidad, han hecho muy buen trabajo durante todos estos años, espero que sigan creciendo y llevando conocimiento a toda Latinoamérica (y más allá). Sin más, describo a continuación mi problema.
He estado siguiendo el curso de Android Avanzado con Firebase con el profesor José Dimas Luján y me ha ido muy bien, hasta que llegué a la parte de poblar (llenar) un RecyclerView utilizando FirebaseUI.
Estoy utilizando las librerías más recientes de Firebase, por lo que entiendo (gracias a una búsqueda en internet) que el método populateViewHolder ya no se utiliza. En su lugar, se realiza una consulta (query) primero, referenciando al nodo JSON de la base de datos y se "construye" un objeto que pasaremos como parámetro al adaptador de Firebase. Este adaptador, tiene dos métodos (creo que les serán familiares a algunos) llamados onCreateViewHolder() y onBindViewHolder() que es donde inflamos el layout y lo llenamos. La documentación oficial la consulté desde este enlace: Using FirebaseUI to populate a RecyclerView.
Mi problema está en que no me muestra la lista de elementos, es decir, se queda en blanco el RecyclerView. No tengo errores en el log o similares y creo estar haciendo todo bien hasta este punto, he buscado en internet y otros proyectos muestran una estructura similar. Adjunto parte del código del proyecto:
dependencies {
...
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.google.firebase:firebase-core:16.0.9'
implementation 'com.google.firebase:firebase-database:17.0.0'
implementation 'com.google.firebase:firebase-auth:17.0.0'
implementation 'com.firebaseui:firebase-ui-auth:4.1.0' //Agregar esta linea tambien...
implementation 'com.firebaseui:firebase-ui:4.1.0' // Para trabajar con FirebaseUI
implementation 'com.firebaseui:firebase-ui-database:4.1.0'
}
package com.rolandoselvera.cursoedteamapp;
public class Notas {
public String id;
public String nombre;
public int conteo;
// Constructor:
public Notas(){
super();
}
public Notas(String id, String nombre, int conteo){
this.id = id;
this.nombre = nombre;
this.conteo = conteo;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getConteo() {
return conteo;
}
public void setConteo(int conteo) {
this.conteo = conteo;
}
}
...
public static class ViewHolder extends RecyclerView.ViewHolder{
CardView cardView;
TextView conteo, nombre;
ImageView trash;
public ViewHolder(View view){
super(view);
cardView = view.findViewById(R.id.cardView);
conteo = view.findViewById(R.id.txtConteo);
nombre = view.findViewById(R.id.txtNombre);
trash = view.findViewById(R.id.trash);
}
}
// Consulta:
Query consulta = FirebaseDatabase.getInstance().getReference().child("Item");
//Query consulta = databaseReference.child("Item"); // Cualquiera de los dos query, arroja la misma URL...
// Opciones:
FirebaseRecyclerOptions<Notas> opciones =
new FirebaseRecyclerOptions.Builder<Notas>()
.setQuery(consulta, Notas.class)
.build();
FirebaseRecyclerAdapter notasAdapter = new FirebaseRecyclerAdapter<Notas, NotasAdapter.ViewHolder>(
opciones) {
<a href="/u/NonNull" data-community-mention="USER" data-community-mention-slug="NonNull">@NonNull</a>
<a href="/u/Override" data-community-mention="USER" data-community-mention-slug="Override">@Override</a>
public NotasAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.notas, viewGroup, false);
return new NotasAdapter.ViewHolder(view);
}
<a href="/u/Override" data-community-mention="USER" data-community-mention-slug="Override">@Override</a>
public void onBindViewHolder(@NonNull NotasAdapter.ViewHolder viewHolder, int position, <a href="/u/NonNullNotasmodel" data-community-mention="USER" data-community-mention-slug="NonNullNotasmodel">@NonNullNotasmodel</a>) {
viewHolder.conteo.setText(String.valueOf(model.getConteo()));
viewHolder.nombre.setText(model.getNombre());
}
};
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(notasAdapter);
Agradezo su apoyo de antemano, que ya llevo varios días quebrandome la cabeza 😖✌ .