Olá,
Estou fazendo um aplicativo em android e me deparei com uma duvida na hora de salvar e exibir em uma lista, os usuários de um sistema.
e
Basicamente o app por enquanto adiciona qualquer um que voce coloque o email correto e click para executar a ação de adicionar a contato, até ai ok! tudo funcionando.
Agora estou precisando fazer com quem alguns usuários sejam adicionados a contatos logo que o usuário abre o app, fiz isso colocando esse método abaixo dentro do onCreate da activity principal, novamente tudo ok!
Por algum motivo ele não cadastra os 3 usuários que pre-defini na variável, imagino que seja algo relacionado ao EventListener ou o while não esta rodando e executando todos os trechos.
Obrigado desde já, fico no aguardo de uma solução!
*Se o processor for feito manualmente, trocando o valor do contador manualmente para 1 ou 2 ou 3 e o while for trocado para "contador == 1 ou 2 ou 3 " o código executa com perfeição e cadastra os 3 contatos.
private void abrirCadastroContato() {
String emailContato;
emailContato = "email";
int contador = 1;
while (contador <=3) {
if (contador == 1) {
emailContato = "email1@email1.com.br";
}
if (contador == 2) {
emailContato = "email1@email1.com.br";
}
if (contador == 3) {
emailContato = "email1@email1.com.br";
}
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 ++;
}
}