1

我正在制作应用程序,并在特定日期使用云端功能删除Firebase数据库。如何使用firebase云端功能删除特定日期的firebase数据库

enter image description here

这是我如何存储数据,我想删除nextDonationDate这个节点,我搜索了一番,发现这可以用云计算功能来完成,但我不知道该怎么办和访问这是因为日期保存在用户的UserID下面所以面临的问题,以及如何解决我的问题执行nextDonationDate?谢谢:)

回答

1

可能是云功能的代码将是这样的:

exports.deleteByDate = functions.https.onRequest((req, res) => { 
    //url example 
    // deletebydate?date=Oct 28, 2017 
    var targetDate = req.query.date; 

    var db = admin.database(); 
    var donorDbRef = db.ref('Blood_donors_last_donation_date'); 
    var updateVal = {}; 

    donorDbRef 
     .orderByChild('nextDonationDate') 
     .equalTo(targetDate) 
     .once('value') 
     .then(snapshot => { 
     snapshot.forEach(childSnapshot => { 
      updateVal[childSnapshot.key] = null 
     }); 
     donorDbRef.update(updateVal, (error)=>{ 
      if(!error) 
      res.status(200).send('succeed deleting data!'); 
      else 
      res.status(200).send('failed deleting data!');     
     }); 
     }); 


}); 
1

Firebase在Youtube上有一个教程,他们演示了如何为云功能触发器安排Cron作业。

https://www.youtube.com/watch?v=CbE2PzvAMxA

你可以有这样的克龙定期将执行HTTP调用你的函数运行。在这里,您可以遍历所有节点并根据您的逻辑检查nextDonationDate,并删除符合条件的节点。

您可以根据您的要求进行优化,这是一个粗略的方法,因为我不完全知道您需要做些什么以及为什么需要做某些事情。

+0

感谢@Kushan回答我的问题....其实我显示在列表中最后一次捐赠日期(如果可用)上DB ....如果数据库上没有可用的UserId子引用数据,而不显示Available其他显示其最后捐赠日期的数据。 –

相关问题