我试图从我的firebase实时检索数据到我的应用程序。因此,每次我尝试更改firebase中的数据(如name,ratio和total_slot)时,它都应该在我的应用程序中实时显示。但是,在我的firebase结构中获取密钥有点困难。如果有人可以提供帮助。这意味着很多。
此处附有我的Firebase数据结构
我的模型类
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;
}
}
我如何尝试检索我在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;
}
但是,每当我尝试更改firebase上的数据时,它都会给我一个错误 也许是因为关键。如果有人可以提供帮助,请