Tengo la siguiente estructura json:
Dentro del nodo "todos" tengo un atributo "drinkId" y estoy tratando de moverlo fuera de ese nodo secundario para subirlo un nivel.
Estoy tratando de leer el valor sin suerte
const cocktailRef= firebase .database() .ref("Ratings"); cocktailRef.once("value", (snapshot) => { snapshot.forEach((child) => { const drinkIdPass = child.ref.child("all").child("drinkId").value(); child.ref.update({ drinkId: drinkIdPass }); }) })Probé diferentes variantes de ".value ()", el mismo problema
No hay ningún método value() en un DataSnapshot . Es val() Intenta refactorizar tu código de esta manera:
const cocktailRef= firebase.database().ref("Ratings"); cocktailRef.once("value").then(async (snapshot) => { const updates = { } snapshot.forEach((child) => { const drinkIdPass = child.val().all.drinkId updates[`${child.key}/drinkId`] = drinkIdPass }) await cocktailRef.update(updates) console.log("Data updated") })