如何在Firebase Functions中定期并以编程方式触发基于计时器的方法?

时间:2018-06-24 10:48:34

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

我正在构建一个众筹应用程序,我的应用程序上的每个广告系列都有目标日期。一旦达到目标日期,我该如何编写功能以自动删除该广告系列或将其转移到其他地方?

更具体地说,我要将广告系列从ref('/Fund/{Campaign_ID}')移至ref('/Timed_out/{Campaign_ID}')

PS:请不要建议手动进行Cron工作。如果用户数量和广告活动数量增加,我将无法跟踪谁发起了广告活动。

我的JSON数据库(重要的一点):

{
  "Fund" : {
    "-LEEy7uxXEeI4AJuePoB" : {
      "amount_funded" : 1400000,
      "artist_name" : "Sean Roldan and Friends",
      "genre" : "Indian Blues and Jazz",
      "image_url" : "https://firebasestorage.googleapis.com/v0/b/artcall-f8f1a.appspot.com/o/profile_images%2Fthumbs%2Fseanroldan.jpg?alt=media&token=6414d8d6-e8a8-487e-baf3-0d36d017a205",
      "percent_funded" : 0,
      "perf_location" : "Chennai",
      "reward_amt" : 6000,
      "target_amount" : 1750000,
      "target_date" : 1566568176731,
      "time_left" : 1566568176731,
      "total_backers" : 0
    }
  },
  "Fund_Project_Request" : {
    "-LEEy7uxXEeI4AJuePoB" : {
      "as123132" : 2,
      "asd123132" : 2,
      "asdf123asdf21" : 2
    }
  },
  "Loyalty_Points" : {
    "value" : 3000
  },

Firebase Screenshot

1 个答案:

答案 0 :(得分:1)

您可以使用单个cron作业间隔触发一次,然后扫描过期数据。实际上,这是目前在Firebase上实现生存时间的最常见方法。