Как внести изменения в несколько дочерних узлов моей базы данных firebase с помощью Android

Я хочу знать, как вы просматриваете мою базу данных, когда проводите Пользователи-> Идентификатор-> Персонажи, которые я получаю

этим способом

Как внести изменения в несколько дочерних узлов моей базы данных firebase с помощью Android

мой объект

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);

некоторое представление о том, как получить данные дерева узлов, где каждая ветвь идентифицируется по имени каждого человека, а внутри содержит их данные, и вы хотите изменить 3 данных каждого дочернего узла

2
0
85
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если я правильно понял ваш вопрос, вы хотите записывать целые объекты в базу данных.

Если это так, вам просто нужно создать настраиваемый объект. В вашем случае это будет выглядеть примерно так:

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);

Просто имейте в виду, что ваш объект должен реализовывать сериализуемый.

если объект Person реализован, как вы показываете, но я хочу обновить три узла в объекте

alexandr camp 01.07.2018 16:17
Ответ принят как подходящий

Чтобы иметь возможность обновлять несколько узлов, вам необходимо знать точный путь к каждому узлу.

Похоже, у вас уже есть ссылка на конкретного пользователя. В этом случае вам нужно будет прочитать персонажей, перебрать их, а затем обновить каждый по очереди. Что-то вроде этого:

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);
    }
  }
  ...
)

Другие вопросы по теме