While para cadastrar no Firebase

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

}

}

Bom, primeiro acho que você poderia começar o contador no 0, apenas por testes. Segundo, se ele cadastra com você colocando na mão, pode ser algo em sua repetição. Depure o código e veja o que está acontecendo

Coloquei o contador começando em zero, porem nada mudou.

Uma pergunta antes… existe alguma depuração por linha? porque assim eu conseguiria ver melhor qual está sendo o percurso completo do while, com essa depuração(debug) do android studio não consigo ver se ele está realmente voltando no laço.

Se tiver algum tipo de depuração desse tipo ou se tiver algum outro jeito para conseguir ver melhor o processo todo do while, por favor me informe!

Obrigado pela ajuda!

Olhando mais profundamente o meu problema, notei que, os 3 registros são cadastrados no firebase, porem no mesmo nó, acredito que o problema esteja no código firebase e não no processo do while.