如何根据时间戳自动从Firebase数据库表中删除数据行?

时间:2018-06-18 01:43:28

标签: database firebase firebase-realtime-database triggers

我想自动从Fire-base数据库表中删除超过5分钟的数据。是否可以选择在fire-base中配置它。

所有这些天我都会从应用程序中触发它,但这并不准确,因为没有多少人使用我的应用程序,并且使用它的2个用户之间的时间间隔可能超过5分钟间隔所以我有数据不会一致。

2 个答案:

答案 0 :(得分:1)

不幸的是,Firebase没有办法安排任务。除非您拥有自己的允许cron作业的服务器或托管,否则您将不得不使用App Engine或Compute Engine。您可以在任何一个中安排cron作业来为您执行任务。 Firebase博客实际上有一篇关于如何执行此操作的精彩文章:How to Schedule (Cron) Jobs with Cloud Functions for Firebase

它的基本要点是,在具有访问Firebase数据库权限的服务器上设置计划任务。让任务执行您在应用中使用的清理代码。

如果您确实使用App Engine或Compute Engine,请注意实例费用。但是,它们提供的免费套餐足以满足小型工作需求。我查了一下。

答案 1 :(得分:0)

首先,您可以添加一个列,用于存储每次数据插入期间的时间。 然后将每个数据时间与当前时间进行比较。如果当前时间大于 5 分钟,则通过子键调用删除函数可以从表中删除该特定数据。 I want to delete top first row from table in firebase Database

$searchdata = "Data";
    $fetchdata = $database->getReference($searchdata)->getValue();
    $found = 0;
    $array=0;
        if($fetchdata > 0)
        {
            foreach($fetchdata as $Key => $row)
            {
                $t=time() - $row["Time"];
                if($t <= 250)
                {
                    $del = "Data/".$Key;
                    $DelRef = $database->getReference($del)->remove();
                    $found++;
                }
            }
        }