答案 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)制定一条规则,规定任何人都可以删除过期消息,并使其能够使客户端在聊天室中自动删除过期消息。