nome de usuário duplicado do firebase e login personalizado [duplicado]

Esta pergunta já tem uma resposta aqui:

Como você evita propriedades duplicadas do usuário no Firebase? 2 respostas

Meu sistema atual do firebase permite me inscrever com um novo usuário usando o firebase createuser (), recebendo um email e uma senha. No método oncomplete, também utilizo os detalhes usados para me inscrever para que o email e a senha, juntamente com algumas outras variáveis que eu criei, como nome de usuário e DOB e salve-os no firebase db com o seguinte código:

// ...database code above
DatabaseReference users = database.getReference("users"); 
User user = new User(username, password,DOB,email); 
users.push().setValue(user);
Preciso verificar agora, antes de salvar no banco de dados, se o nome de usuário é exclusivo, se não for, solicita outro nome de usuárioTambém implementei um sistema em que, quando o usuário efetua login, ele verifica a String se é um email ou um nome de usuário, se o usuário efetua login com um email, utilizará o sistema da firebase para efetuar login, mas se usar um nome de usuário ele precisa verificar o banco de dados do firebase para ver se o nome de usuário existe e depois verificar se a senha está correta

Eu não tenho idéia de como fazer qualquer uma das opções acima, qualquer ajuda é muito apreciada obrigado. Eu usei a pesquisa stackoverflow e percebi que há postagens com essa pergunta que já foram feitas, tentei algumas dessas soluções que não funcionaram porque a estrutura de banco de dados de todos é diferente

questionAnswers(1)

yourAnswerToTheQuestion