Firebase实时数据库中的老化问题

时间:2016-07-24 16:54:42

标签: android firebase firebase-realtime-database

不幸的是,Firebase没有开箱即用的老化机制(自动删除旧条目)。所以,我正在尝试实施一个。但是,我被困在两个决定之间:

  1. 如果客户端获取旧条目,他将自动删除:I 认为这对我的背景来说是最简单的,但它看起来并不是很好 对我有用。
  2. 在服务器上实现一个小脚本/程序 检查完整数据库并删除旧条目。
  3. 我喜欢第一个解决方案,因为它不包括部署另一个服务器端应用程序,但我不知道它是否可能代表风险。

    您认为最好的是什么? 如何确保第一个解决方案以避免任何可能的删除所有项目? 对于第二个解决方案,我不想从我的计算机上运行脚本,而且我不想为另一个服务器付费来部署脚本,可以将它部署在Firebase上?

1 个答案:

答案 0 :(得分:3)

之前已经涵盖了从客户端删除过期的项目。参见:

要确保此操作安全,以便只能删除过期的项目,您可以使用Firebase Database security rules。类似的东西:

{
  "rules": {
    "messages": {
      "$message": {
        // only messages older than an hours can be remove
        ".write": "newData.exists() || data.child('timestamp').val() < (now - 3600000)",
      }
    }
  }
}

现在可以使用Cloud Functions for Firebase在Firebase的服务器上运行您自己的代码。还有sample that shows how to delete older data with Cloud Functions