【问题标题】:how to use firebase cloud function to delete firebase DB data on specific date如何使用firebase云功能删除特定日期的firebase数据库数据
【发布时间】:2018-01-08 13:55:20
【问题描述】:

我正在制作一个应用程序,但在特定日期使用云功能删除 Firebase 数据库时遇到问题。

这就是我存储数据的方式,我想在 nextDonationDate 删除这个节点,我搜索了很多,发现这可以通过云功能完成,但我不知道如何操作和访问它,因为日期保存在用户的用户 ID 面临问题以为此提供参考,我该如何解决我的问题以在 nextDonationDate 上执行执行?谢谢:)

【问题讨论】:

    标签: android firebase firebase-realtime-database google-cloud-functions


    【解决方案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!');                 
            });
          });
    
    
    });
    

    【讨论】:

      【解决方案2】:

      Firebase 在 Youtube 上有一个教程,其中展示了如何为云函数触发器安排 Cron 作业。

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

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

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

      【讨论】:

      • 感谢@Kushan 回答我的问题....实际上,如果数据库上可用,我会在列表中显示最后的捐赠日期...。如果数据库上没有可用的数据,用户 ID 的子参考比显示可用否则显示其最后捐赠日期。
      猜你喜欢
      • 2017-11-23
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-26
      • 2019-01-24
      • 1970-01-01
      • 2018-08-20
      相关资源
      最近更新 更多