I'm trying to retrieve data in realtime from my firebase to my app. So, every time I try to change data(like name, ratio, and total_slot) in firebase, it should show it on my app as well in real time. However, it's a bit difficult to get the keys in my firebase structure. If anyone can help though. It would mean so much.
Attached here is my Firebase data structure
My Model class
public class LocationModel {
Long lat,lng,ratio,total_slot;
String name;
String key;
public LocationModel(){
}
public Long getLat(){return lat;}
public void setLat(Long lat){this.lat=lat;}
public Long getLng(){return lng;}
public void setLng(Long lng){this.lng=lng;}
public Long getRatio(){ return ratio;}
public void setRatio(Long ratio){this.ratio = ratio;}
public Long getTotal_slot(){ return total_slot;}
public void setTotal_slot(Long total_slot){this.total_slot = total_slot;}
public String getName() {
return name;
public void setName(String name) {
this.name = name;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
How I try to retrieve the data I changed in the firebase
//RETRIEVE
public ArrayList<LocationModel> retrieve()
{
db.child("locs").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
fetchData(dataSnapshot);
LocationModel locationModel = dataSnapshot.getValue(LocationModel.class);
locationModels.add(locationModel);
String key = dataSnapshot.getKey();
mKeys.add(key);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
for(DataSnapshot ds: dataSnapshot.getChildren()){
LocationModel locationModel = dataSnapshot.getValue(LocationModel.class);
String key = ds.getKey();
int index=mKeys.indexOf(key);
locationModels.set(index, locationModel);
}
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return locationModels;
}
However, everytime I try to change data on my firebase, it gives me an error Maybe its because of the key. If anyone can help please