Home > other >  Reading a value from Realtime Firebase
Reading a value from Realtime Firebase

Time:09-17

I have the following json structure:

enter image description here

Within "all" node I have an attribute "drinkId" and I'm trying to move it outside that child node bringing it one level up.

I'm trying to read the value without any luck

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 }); 
     })
  }) 

I've tried different variants of ".value()", same problem

CodePudding user response:

There isn't any value() method on a DataSnapshot. It's val() Try refactoring your code like this:

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")
}) 
  • Related