如何使用Firebase规则创建时间过期的数据?

时间:2017-01-10 19:58:07

标签: firebase firebase-realtime-database firebase-security

本演讲在22:55使用Firebase规则提到了时间过期的数据

https://www.youtube.com/watch?v=PUBnlbjZFAI

怎么能这样做?

我没有找到任何有关此事的信息。

3 个答案:

答案 0 :(得分:2)

写在这里:https://firebase.google.com/docs/database/security/securing-data

您无法自动删除数据,但可以使其无法读取(从用户的角度来看,这是一回事)。只需向您发送带有数据的时间戳子字段,然后检查它。

 {
  "rules": {
    "messages": {
      "$message": {
        // only messages from the last ten minutes can be read
        ".read": "data.child('timestamp').val() > (now - 600000)",

        // new messages must have a string content and a number timestamp
        ".validate": "newData.hasChildren(['content', 'timestamp']) && newData.child('content').isString() && newData.child('timestamp').isNumber()"
      }
    }
  }
}

答案 1 :(得分:1)

同样的问题here

您无法使用firebase规则执行此操作。您应该有一个NodeJS后端删除旧数据或客户端为您执行此操作。例如,在客户端检索数据之前,他可以删除旧数据。

答案 2 :(得分:0)

我推荐两种解决方案。

1)使用云功能记录消息路径及其发布日期。然后,每小时按日期对列表进行排序,选择所有过期的邮件,然后创建一个深度更新对象以使所有过期的邮件都无效。如今,您可以使用Cron Scheduler来处理定期刷新。

2)制定一条规则,规定任何人都可以删除过期消息,并使其能够使客户端在聊天室中自动删除过期消息。