Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

294
Vistas
Eliminar nodo específico de Firebase en JavaScript

¿Cómo elimino este nodo específico en mi base de datos como se muestra en esta imagen a continuación? (el nick sera diferente ya que solo lo estoy probando, si alguien se confunde) ingrese la descripción de la imagen aquí

He intentado

 const roomRef = firebase.database().ref(`allRooms/${rooms}`); roomRef.orderByChild('nickname').equalTo(`${username}`).once('value',(snapshot)=> { snapshot.ref.remove(); })

Pero simplemente eliminó todos mis nodos en esa sala, gracias

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Ya casi estás ahí.

Cuando ejecuta una consulta en la base de datos de Firebase, potencialmente habrá múltiples resultados. Entonces, la instantánea contiene una lista de esos resultados. Incluso si solo hay un único resultado, la instantánea contendrá una lista de un resultado. Y su código necesita manejar el hecho de que `` es una lista con algo como:

 roomRef.orderByChild('nickname').equalTo(username).once('value',(snapshot)=> { snapshot.forEach((userSnapshot) => { userSnapshot.ref.remove(); }) })

Lo anterior ejecuta una llamada remove() separada para cada nodo coincidente. Si solo tiene uno (o unos pocos) nodos con el mismo nombre, probablemente esté bien. Pero si tiene más de ellos, considere usar una sola actualización de múltiples rutas para eliminar todos los nodos como este:

 roomRef.orderByChild('nickname').equalTo(username).once('value',(snapshot)=> { let updates = {}; snapshot.forEach((userSnapshot) => { updates[userSnapshot.key] = null; // 👈 setting to null will remove the node }) roomRef.update(updates); // 👈 send all updates in one call })
over 4 years ago · Santiago Trujillo Denunciar

0

Aquí snapshot.ref será roomRef en sí mismo, por lo tanto, usar el método remove() en eso eliminará todo el nodo allRooms/roomId . Para eliminar ese nodo secundario específico, necesita una referencia a eso. Prueba esto:

 const roomRef = firebase.database().ref(`allRooms/${rooms}`); roomRef.orderByChild('nickname').equalTo(`${username}`).once('value').then((snapshot) => { if (snapshot.val()) { const keys = Object.keys(snapshot.val()) snapshot.ref.child(keys[0]).remove().then(() => { // ^^^^^ deleting that child instead of roomRef console.log("Data Deleted") }).catch(e => console.log(e)); } })
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda