nombre de usuario duplicado de firebase e inicio de sesión personalizado [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo se evitan las propiedades de usuario duplicadas en Firebase? 2 respuestas

Mi sistema firebase actual me permite registrarme con un nuevo usuario usando firebase createuser () tomando un correo electrónico y una contraseña. En el método completo también tomo los detalles utilizados para registrarme, de modo que el correo electrónico y la contraseña junto con algunas otras variables que creo como nombre de usuario y fecha de nacimiento y guárdelos en la base de datos de Firebase con el siguiente código:

// ...database code above
DatabaseReference users = database.getReference("users"); 
User user = new User(username, password,DOB,email); 
users.push().setValue(user);
Necesito verificar ahora antes de guardar en la base de datos que el nombre de usuario es único; si no lo es, solicita otro nombre de usuarioTambién he implementado un sistema en el que cuando el usuario inicia sesión, comprueba la Cadena si es un correo electrónico o un nombre de usuario, si el usuario inicia sesión con un correo electrónico, usará el sistema firebase para iniciar sesión, pero si usa un nombre de usuario, entonces tiene que verificar la base de datos de firebase para ver si el nombre de usuario existe y luego verificar si la contraseña es correcta

No tengo idea de cómo hacer nada de lo anterior, cualquier ayuda es muy apreciada, gracias. He usado la búsqueda de stackoverflow y me doy cuenta de que hay publicaciones con esta pregunta que ya se han hecho, he probado algunas de estas soluciones que no funcionaron porque la estructura de la base de datos de cada uno es diferente

Respuestas a la pregunta(1)

Su respuesta a la pregunta