Estoy tratando de encontrar una manera de encontrar el valor de la id dado el email .
Por ejemplo, si tuviera email2@gmail.com , me daría el ID 108454568498950432898 .
Todos los correos electrónicos son únicos y no habrá repetición de correos electrónicos.
Este es mi árbol de usuarios:
Nota: En la imagen dice email2 en lugar de email2@gmail.com . Ignora esto
Aquí está mi código hasta ahora: (Obviamente, el código no se ejecutará, pero es más fácil ingresar el código usando la inserción)
var users; var givenEmail = "email2@gmail.com"; var neededID; var dataRef = firebase.database().ref('users'); dataRef.on('value', (snapshot) => { const data = snapshot.val(); users = data; }); var usersArray = Object.keys(users); for(i = 0; i < usersArray.length; i++) { if(users[i].email == givenEmail) { neededID = i; break; } }Bueno, creo que ya casi estás allí.
users[i].emailpuede recuperar el correo electrónico utilizando este método y, de manera similar, también puede hacerlo con la identificación
users[i].idTenga en cuenta que quería encontrar email2@gmail.com pero su base de fuego solo tiene email2
Tal vez quieras cambiar eso
Recomiendo usar una consulta para realizar el filtrado en el servidor, en lugar de descargar el nodo de users completo y filtrar en el código de su aplicación como lo hace ahora.
var givenEmail = "email2@gmail.com"; var dataRef = firebase.database().ref('users'); var query = dataRef.orderByChild('email').equalTo(givenEmail); dataRef.once('value', (snapshot) => { snapshot.forEach((userSnapshot) => { console.log(userSnapshot.val().id); }); });