代码之家  ›  专栏  ›  技术社区  ›  TomH

firebase cloud函数-删除时间戳字段超过一个月的条目,并每天运行

  •  2
  • TomH  · 技术社区  · 7 年前

    这是一个二合一的问题。

    第1部分: 我在FireStore中存储数据,其中一个字段是“结束日期”时间戳字段。 如何编写一个云函数,这样当这个字段过去超过一个月时,记录就被删除了?

    第2部分: 我怎样才能让它每天都运行?

    1 回复  |  直到 7 年前
        1
  •  3
  •   DauleDK    7 年前

    ,获取“结束日期”在过去的所有文档。像这样(点头)。

    let now = new Date(); // Maybe use luxon or moment
    now.setMonth(d.getMonth() - 1);
    const query = firestore.collection('items')
      .where('end_date', '<=', now)
    const snapshots = await query.get();
    // Snapshots now contains the documents to delete
    

    消防仓库批次 ,用于创建批处理操作,例如删除。一批最多可以执行500个操作:

    const batch = firestore.batch();
    snapshots.forEach(v => batch.delete(v.ref));
    await batch.commit();
    

    现在你只需要一种每天运行一次的方法。嗯,在创建一个 HTTPS firebase function ,您可以使用类似这样的免费cron作业服务。 cron-job.org ,每天调用函数。

    记住,如果您使用cron-job.org来安排您的工作,请考虑身份验证。

    如果你需要其他帮助,请告诉我。

    推荐文章