首页 > 解决方案 > 为每个用户只保留 100 条新记录,删除 firebase 中的旧记录

问题描述

我有一个feedjson,我希望每个用户只保留 100 条记录。因此,每次我在那里放一条新记录时,我都想删除旧记录。

要获得我想保留的帖子,我会这样做:

feedRef = firebase.database().ref().child('feed').child(user_id).limitToLast(100);

如何删除其他旧的?

标签: javascriptreactjsfirebasefirebase-realtime-database

解决方案


环形缓冲区解决方案就足够了吗?您预先分配了 100 条记录。通过存储指向该记录的计数器来跟踪哪个是最新的。当创建新记录时,更新计数器模 100 以在需要时将其重置为开始,然后将记录存储在新计数器指向的位置。

这样,较新的记录将覆盖最旧的记录,并且不需要额外的维护。

替代方案:运行删除旧条目的 cron 作业。例如,查询 100 个最新条目并获取最旧的时间戳,然后删除比该时间戳更早的记录。

然而,这假设了维护任务,并且不能保证每个用户最多只存在 100 条记录。但这可能无需对您的数据库结构进行任何修改即可实现。


推荐阅读