cada vez que trato de obtener datos de Firebase Motel by Motel, simplemente no funciona, pero cuando intento obtener solo una cadena, ¡funciona bien! No sé dónde está el problema, este es el código ChildEventListener:
refe.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { motels.clear(); for(DataSnapshot snapshot : snap.getChildren()) { Motel motel = snap.getValue(Motel.class); motels.add(motel); } adapter.notifyDataSetChanged(); } @Override public void onChildChanged(DataSnapshot dataSnapshot, String s) { } @Override public void onChildRemoved(DataSnapshot dataSnapshot) { } @Override public void onChildMoved(DataSnapshot dataSnapshot, String s) { } @Override public void onCancelled(DatabaseError databaseError) { } });y el código de clase del motel:
public class Motel { private String name,adresse,price; private Long stars; private Long chambers; private String region; public Motel(String name, Long chambers,String adresse, String price, String region,Long stars ) { this.name=name; this.adresse=adresse; this.price=price; this.stars=stars; this.chambers=chambers; this.region=region; } public String getRegion() { return region; } public void setRegion(String region) { this.region = region; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Long getChambers() { return chambers; } public void setChambers(Long chambers) { this.chambers = chambers; }por favor ayudame !! parece que no puedo entender cuál es el problema
Debería publicar el registro para que podamos ver el problema, pero creo que ya sé lo que está sucediendo.
El método que reúne todos los elementos es OnDataChange de ValueEventListener , mientras onChildAdded de ChildEventListener solo toma 1 a la vez y se ejecuta todas las veces que sea necesario.
Cambio
motels.clear(); for(DataSnapshot snapshot : snap.getChildren()) { Motel motel = snap.getValue(Motel.class); motels.add(motel); } adapter.notifyDataSetChanged();Para
motels.clear(); Motel motel = dataSnapshot.getValue(Motel.class); motels.add(motel); adapter.notifyDataSetChanged();