Duvida firebase

Boa tarde, tenho o seguinte banco de dados no firebase, minha dúvida é. Contatos fiz ser uma classe filha de Usuario, e sempre que altero a foto, atualiza em usuarios, no nó child do identificador correspondente, mas quando tento atualizar o nó child de contatos, quanto a foto é alterada também, nao estou conseguindo. No caso em contatos eu defino da seguinte maneira:

firebase = firebase.child("contatos")
                                        .child( identificadorUsuarioLogado )
                                        .child( identificadorContato )

Sendo identificadorUsuarioLogado pegando a id do usuario atual, e identificadorContado pegando a id de um email digitado.
Fazendo assim a busca se possui o email cadastrado, e se caso possua adiciona o contato:
Contato contato = new Contato();
contato.setIdentificadorUsuario( identificadorContato );
contato.setEmail( usuarioContato.getEmail() );
contato.setNome( usuarioContato.getNome() );
contato.setFoto(usuarioContato.getFoto());
firebase.setValue( contato );
Dessa forma, estou apenas dando set pegando o que o usuario tem no momento, ou seja, não estou conseguindo recuperar caso ele atualize a foto:

public static boolean atualizarFotoUsuario(Uri url){

        try{
            FirebaseUser user = getUsuarioAtual();
            UserProfileChangeRequest profile = new UserProfileChangeRequest.Builder()
                    .setPhotoUri(url)
                    .build();

            user.updateProfile(profile).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (!task.isSuccessful()){
                        Log.d("Perfil", "Erro ao atualizar foto de perfil");
                    }
                }
            });
            return true;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }
public void atualizaFotoUsuario(Uri url){
        boolean retorno = UsuarioFirebase.atualizarFotoUsuario(url);
        if(retorno){
            usuarioLogado.setFoto(url.toString());
            usuarioLogado.atualizar();

            Toast.makeText(ConfiguracoesActivity.this,
                    "Sua foto foi alterada!",
                    Toast.LENGTH_SHORT).show();
        }

Alguem poderia me ajudar que tipo de implementação preciso fazer? Obrigado.

Eu acho que posso ajudar. Mas não consigo entender o seu problema… Tenta ser mais curto e objectivo

Cada usuário no sistema tem um contato que pode ser adicionado. Ou seja, ao cadastrar e efetuar o primeiro login, o usuário ainda não possui nenhum contato, pois a lista que eu pego para mostrar é a lista de contatos, e não a lista de usuarios no banco de dados. Portanto, ao efetuar o primeiro login por exemplo e adicionar um usuario, é criado um campo no firebase em “contatos”, digitando primeiro o id desse usuario logado, seguida do id do contato adicionado(que é o mesmo do usuario quando criado, email em base64). Se esse usuario logado adicionar mais contatos, esses contatos vai caindo abaixo do nó dele em “contatos”, e é dai que eu listo no aplicativo pelo recycler view esses contatos adicionados pelo usuario que esta logado no momento. O meu problema é que quando eu adiciono algum contato dessa forma, ele pega as informações que o usuario possui naquele momento, caso o usuario faça alguma atualização, seja de foto ou nome. Seria necessario atualmente adicionar novamente o contato para efetuar essa atualização, ja que não estou conseguindo efetuar esse atualização também nesse nó de “contatos” ->idUsuarioLogado -> idContato. Foi mais claro agora? Obrigado. Ja tentei diversas resoluções, tanto na hora de listar a lista quanto na hora de atualização de foto/nome, todas ainda sem sucesso.