如何使用android在我的数据库firebase的多个子节点中进行更改

如何使用android在我的数据库firebase的多个子节点中进行更改,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想知道你在花时间时是如何浏览我的数据库的 用户->Id->我得到的角色 这样 我的目标人 public class Persona implements Serializable{ private String nombres; private String address; private String parentesco; private int dni; private int telefono; private String img; private String latitu

我想知道你在花时间时是如何浏览我的数据库的 用户->Id->我得到的角色

这样

我的目标人

public class Persona implements Serializable{


private String nombres;
private String address;
private String parentesco;
private int dni;
private int telefono;
private String img;
private String latitud;
private String longitud;
private String dirCoordenadas;

public Persona(){
    super();
}

public Persona(String nombres, String address, String parentesco, int telefono,
               int dni, String img,String latitud,String longitud, String dirCoordenadas) {
    this.nombres = nombres;
    this.address = address;
    this.parentesco = parentesco;
    this.telefono = telefono;
    this.dni = dni;
    this.img=img;
    this.latitud=latitud;
    this.longitud=longitud;
    this.dirCoordenadas=dirCoordenadas;
}
这是我的Firebase连接实例

databaseReference = FirebaseDatabase.getInstance().getReference("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("Personas")
我如何获得代表每个人姓名的子角色,以便在其中保存每个人物角色的更改

 Map<String,Object> update= new HashMap<>();
 update.put("latitud",lati);
 update.put("longitud",longit);
 update.put("dirCoordenadas",dir);
 databaseReference.child("Personas").child(---Here--).updateChildren(update);
Map update=newhashmap();
update.put(“latitud”,lati);
更新。放置(“longitud”,longit);
update.put(“dirCoordenadas”,dir);
databaseReference.child(“Personas”).child(---此处-).updateChildren(更新);

关于如何获取节点树的数据的一些想法,其中每个分支由每个人的姓名标识,其中包含他们的数据,并且您希望更改每个子节点的3个数据

如果我正确理解您的问题,您希望将整个对象写入数据库

如果是这样,您只需创建自定义对象。在您的情况下,这看起来是这样的:

public class Persona implements Serializable {
  public String name;
  public String dir;
  ...
  ...
  ...

  public void setName(String name) {
    this.name = name;
  }
  public String getName() {
    return name;
  }
}
当然,您需要所有字段,每个字段都需要一个公共setter和getter

当你有了这个,你就可以用这样的东西把整个对象写到数据库中:

public class Persona implements Serializable {
  public String name;
  public String dir;
  ...
  ...
  ...

  public void setName(String name) {
    this.name = name;
  }
  public String getName() {
    return name;
  }
}
FirebaseDatabase.getInstance().getReference().child(“someChild”).child(“someID”).setValue(persona)


请记住,您的对象需要实现可序列化。

要能够更新多个节点,您需要知道每个节点的确切路径

您似乎已经有了对特定用户的引用。在这种情况下,您将需要阅读角色,循环它们,然后依次更新每个角色。大概是这样的:

Map<String,Object> update= new HashMap<>();
update.put("latitud",lati);
update.put("longitud",longit);
update.put("dirCoordenadas",dir);
databaseReference.child("Personas").addListenerForSingleValueEvent(new ValueEventListener() {
  public void onDataChange(DataSnapshot snapshot) {
    for (DataSnapshot child: snapshot.getChildren()) {
      child.getRef().updateChildren(update);
    }
  }
  ...
)
Map update=newhashmap();
update.put(“latitud”,lati);
更新。放置(“longitud”,longit);
update.put(“dirCoordenadas”,dir);
databaseReference.child(“Personas”).addListenerForSingleValueEvent(新的ValueEventListener()){
公共无效onDataChange(数据快照快照){
对于(DataSnapshot子项:snapshot.getChildren()){
child.getRef().updateChildren(更新);
}
}
...
)

如果实现了Person对象,如您所示,但我希望更新对象中的三个节点