Android 在Firebase实时数据库中实现老化

Android 在Firebase实时数据库中实现老化,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,不幸的是,Firebase没有现成的老化机制(自动删除旧条目)。所以,我正在尝试实现一个。然而,我被困在两个决定之间: 如果客户机获取旧条目,他将自动删除:I 我认为这对我的环境来说是最简单的,但看起来不太好 给我安全 在服务器上实现一个小脚本/程序 检查完整数据库并删除旧条目 我喜欢第一个解决方案,因为它不包括部署另一个服务器端应用程序,但我不知道这是否会带来风险 你认为什么是最好的? 如何确保第一个解决方案的安全性以避免删除所有项目? 对于第二个解决方案,我不想从我的计算机上运行脚本,也不想

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

  • 如果客户机获取旧条目,他将自动删除:I 我认为这对我的环境来说是最简单的,但看起来不太好 给我安全
  • 在服务器上实现一个小脚本/程序 检查完整数据库并删除旧条目
  • 我喜欢第一个解决方案,因为它不包括部署另一个服务器端应用程序,但我不知道这是否会带来风险

    你认为什么是最好的? 如何确保第一个解决方案的安全性以避免删除所有项目?
    对于第二个解决方案,我不想从我的计算机上运行脚本,也不想为另一台服务器支付部署脚本的费用,是否可以在Firebase上部署脚本?

    以前已经讨论过从客户端删除过时项目。见:

    要确保此操作的安全性,以便只能删除过时的项目,可以使用。比如:

    {
      "rules": {
        "messages": {
          "$message": {
            // only messages older than an hours can be remove
            ".write": "newData.exists() || data.child('timestamp').val() < (now - 3600000)",
          }
        }
      }
    }
    
    {
    “规则”:{
    “信息”:{
    “$message”:{
    //只能删除超过一小时的邮件
    .write:“newData.exists()| | data.child('timestamp').val()<(现在为-3600000)”,
    }
    }
    }
    }
    

    在Firebase的服务器上运行您自己的代码现在可以使用。还有一个问题。

    从客户端删除过时的项目之前已经讨论过。见:

    要确保此操作的安全性,以便只能删除过时的项目,可以使用。比如:

    {
      "rules": {
        "messages": {
          "$message": {
            // only messages older than an hours can be remove
            ".write": "newData.exists() || data.child('timestamp').val() < (now - 3600000)",
          }
        }
      }
    }
    
    {
    “规则”:{
    “信息”:{
    “$message”:{
    //只能删除超过一小时的邮件
    .write:“newData.exists()| | data.child('timestamp').val()<(现在为-3600000)”,
    }
    }
    }
    }
    

    在Firebase的服务器上运行您自己的代码现在可以使用。还有一个问题。

    这篇文章上的答案可能会给你一些想法:这篇文章上的答案可能会给你一些想法: