0
这是我的firebase数据结构。 Push firebase内更新值android
现在基本上我想要做的是,首先,有ID:“第一财经”。我用push()。setValue(gpsData)推送了位置。 。现在,在此基础上ID =“CBN”,我想在地点孩子添加新的纬度和经度使用“推图中酷似上面显示()到目前为止我的代码是:
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
if (busExists) {
// busId = "cbn"
mDatabase.child(busId).child("Location").push().setValue(gpsData);
}
我知道我不能引用busId的孩子,但我怎么能访问特定的节点,并把我的新的数据到它。
任何帮助吗?
对于新的问题:
public class Users {
private String bus_id;
private HashMap<String, String> coord = new HashMap<>();
public Users() {
}
public String getBus_id() {
return bus_id;
}
public void setBus_id(String bus_id) {
this.bus_id = bus_id;
}
public HashMap<String, String> getCoord() {
return coord;
}
public void setCoord(HashMap<String, String> coord) {
this.coord = coord;
}
}
我实现了这种方式:
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Users bus = new Users();
bus.setBus_id(ds.getValue(Users.class).getBus_id());
Log.e("bus id: ", bus.getBus_id()+""); // I got NULL
busList.add(bus.getBus_id());
arrayAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
谢谢。有效。但是,我又有一个小问题。我为你编辑了代码(也是图)。现在我想要读取所有这些单个节点的所有数据(ID,位置),即为每个ID'cbn','uoohj'等等。为此,我创建了一个Users类,它记录了存储经度和纬度的'id'和'coord'hashmap。我还提到了我在上面的代码中遵循的方法。但它没有奏效。你能否就如何做到这一点提供一些见解?谢谢。 – Sagaryal