定期从Firebase删除数据

时间:2017-05-15 15:01:44

标签: swift firebase firebase-realtime-database

我正在开发一个社交iOS应用程序,它允许将数据发布到Firebase。但是,我想清除所有超过1小时的帖子。一个很好的例子是Instagram Story,24小时后图像被删除。我正在考虑的方法包括在endTime超过当前时间之后提交startTime和endTime时间戳并删除数据客户端。另一方面,这将需要24/7用户的活动,因为如果他们不经常打开应用程序,则永远不会删除用户的数据。我相信我需要一台服务器来处理这个问题。 我很乐意向您询问有关如何实施此服务器端的建议和帮助 - 因为我认为这是唯一可行的方法。

2 个答案:

答案 0 :(得分:4)

解决方案1 ​​ - 云功能

登录firebase,然后选择您的应用,您将进入App Overview页面。选择云功能项。这将允许您基于触发器执行一些javaScript,有许多不同类型的触发器,如数据库触发器或身份验证触发器。在这种情况下,您希望触发器基于时间。

就是这个:

enter image description here

Firebase更好地解释了云功能:

在您编写和部署函数之后,Google的服务器会立即开始管理该函数,在触发事件时监听事件并运行该函数。随着负载的增加或减少,Google会通过快速扩展运行您的功能所需的虚拟服务器实例数来做出响应。

功能的生命周期

开发人员为新函数编写代码,选择事件提供程序(如实时数据库),并定义函数执行的条件。 开发人员部署该功能,Firebase将其连接到选定的事件提供程序。 当事件提供程序生成与函数条件匹配的事件时,将调用该代码。 如果该功能忙于处理许多事件,Google会创建更多实例以更快地处理工作。如果该功能处于空闲状态,则会清除实例。 当开发人员通过部署更新的代码更新函数时,旧版本的所有实例都将被清除并替换为新实例。 当开发人员删除该功能时,将清除所有实例,并删除该功能与事件提供程序之间的连接。

来源:https://firebase.google.com/docs/functions/

解决方案2 - 服务器+ Cron作业(我的偏好)

  1. 按月订购便宜的服务器(不需要任何花哨的东西,每月应该花几美元),但很难找到一个允许Cron工作的免费服务器。

  2. 编写一个连接到firebase数据库的脚本,并删除超过一小时的所有帖子。

  3. 服务器仪表板/控制面板上的
  4. 创建一个新的Cron作业,计划每小时运行一次,并将其指向您刚编写的脚本。

答案 1 :(得分:0)

我想下面的示例正是您在没有其他任何服务器的情况下所要寻找的内容,并且您将不得不研究Firebase函数文档来进行设置:https://github.com/firebase/functions-samples/tree/master/delete-unused-accounts-cron

为此功能,您需要付费。