云功能-覆盖数据

时间:2020-04-25 16:24:08

标签: javascript node.js firebase-realtime-database google-cloud-functions

我编写了写入数据库(实时数据库)的函数。 我的问题是,由于某种原因,每当我写入一个痉挛性节点时,它都会添加整个数据,然后只删除其中一个。

enter image description here

这是节点。由于某种原因,数据会不断被删除,并且在ID下仅保留一个数据。

这就是密码

 function sendVideosToUserFeed(videosList,userUID){
  let promises = []
  videosList.forEach(video =>{
  console.log("Video function",video);
  promises.push(admin.database().ref("userFeed").child(userUID).set(video));
})

 return Promise.all(promises).then(snapshot =>{
 console.log("Sent succssesful ","worked");
 return true
 }).catch(error =>{
 console.log("Error ",error);
})

}

在这段代码中,我在一个包含数据并将其设置为痉挛节点的循环上运行。 我希望将每个数据保存在用户UID下。 所以我要设置对每个数据的引用,然后使用Promis.all运行所有数据。 但是就像我说的那样,它会不断添加所有内容,然后将它们全部删除。 知道我在做什么错吗?

解决方案

function sendVideosToUserFeed(videosList,userUID){
let promises = []
 videosList.forEach(video =>{
  promises.push(admin.database().ref("userFeed").child(userUID).child(video.videoID).set(video));
  })

 return Promise.all(promises).then(snapshot =>{
   console.log("Sent succssesful ","worked");
   return true
 }).catch(error =>{
   console.log("Error ",error);
 })
}

我这样保存数据:头节点->用户UID->视频ID->数据

1 个答案:

答案 0 :(得分:0)

解决方案

function sendVideosToUserFeed(videosList,userUID){
let promises = []
 videosList.forEach(video =>{
  promises.push(admin.database().ref("userFeed").child(userUID).child(video.videoID).set(video));
  })

 return Promise.all(promises).then(snapshot =>{
   console.log("Sent succssesful ","worked");
   return true
 }).catch(error =>{
   console.log("Error ",error);
 })
}