0
Well I have the following code:
private void abrirCadastroContato() {
String emailContato;
emailContato = "email";
int contador = 1;
while (contador <=3) {
if (contador == 1) {
emailContato = "[email protected]";
}
if (contador == 2) {
emailContato = "[email protected]";
}
if (contador == 3) {
emailContato = "[email protected]";
}
identificadorContato = Base64Custom.codificarBase64(emailContato);
firebase = ConfiguracaoFirebase.getFirebase().child("usuarios").child(identificadorContato);
firebase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
//Recuperar dados do contato a ser adicionado
Usuario usuarioContato = dataSnapshot.getValue(Usuario.class);
//Recuperar identificador usuario logado (base64)
Preferencias preferencias = new Preferencias(MainActivity.this);
String identificadorUsuarioLogado = preferencias.getIdentificador();
firebase = ConfiguracaoFirebase.getFirebase();
firebase = firebase.child("contatos")
.child(identificadorUsuarioLogado)
.child(identificadorContato);
Contato contato = new Contato();
contato.setIdentificadorUsuario(identificadorContato);
contato.setEmail(usuarioContato.getEmail());
contato.setNome(usuarioContato.getNome());
firebase.setValue(contato);
} else {
Toast.makeText(MainActivity.this, "Usuário não possui cadastro.", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
contador ++;
}
}
In this code the goal is to register 3 records in Firebase, but when I run it, instead of creating 3 different nodes inside the contacts node, it creates only one node and changes it, not registering 3 different records, but only 1 record.
Expected result in firebase: Result obtained:
Debugging the code I realized that this bit below usually doesn’t run, I don’t know if it has anything to do with the problem but just a note.
firebase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
//Recuperar dados do contato a ser adicionado
Usuario usuarioContato = dataSnapshot.getValue(Usuario.class);
//Recuperar identificador usuario logado (base64)
Preferencias preferencias = new Preferencias(MainActivity.this);
String identificadorUsuarioLogado = preferencias.getIdentificador();
firebase = ConfiguracaoFirebase.getFirebase();
firebase = firebase.child("contatos")
.child(identificadorUsuarioLogado)
.child(identificadorContato);
Contato contato = new Contato();
contato.setIdentificadorUsuario(identificadorContato);
contato.setEmail(usuarioContato.getEmail());
contato.setNome(usuarioContato.getNome());
firebase.setValue(contato);
} else {
Toast.makeText(MainActivity.this, "Usuário não possui cadastro.", Toast.LENGTH_LONG).show();
}
}
My question is... How do I create a while similar to it that registers 3 different nodes in the Firebase database?
You’ve already asked this question here. To avoid duplication of effort, please delete one.
– Rosário Pereira Fernandes