首页 文章

如何使Firebase数据库中的数据到期

提问于
浏览
1

我正在构建一个“事件”应用程序,其中一些用户在应用程序中放置一些事件,其他用户看到它们 . 假设每个事件都有一个开始日期时间,结束日期时间和名称 .

我希望用户只看到当前事件,即start <now <end的事件 . 这是某种过滤,Firebase不支持 . 我可以使用startAt和endAt查询在我的应用程序中实现这一点 . 但是,这不会帮助我隐藏用户的机密数据,因为尽管我的应用程序不会访问过去和未来的事件,但任何人都可以从其REST API查询数据库以查看这些事件 .

因此,我决定使用三个事件列表构建数据: past_eventscurrent_eventsfuture_events .

现在,问题在于,当时机成熟时,我需要将事件从 future_events 移动到 current_events 并从 current_events 移动到 past_events . 我相信没有办法在firebase中自动触发这些更改 . 因此,我正在考虑在某处定期进行清理 .

这是处理Firebase中数据过期的最佳方式吗?有什么建议/意见吗?

谢谢

1 回答

  • 0

    如果您有保存在Firebase中的每个事件的结束日期时间,则可以仅针对活动结果查询Firebase .

    JavaScript中的示例:

    var date = new Date();
    var currentTime = date.getTime();
    var ref = firebase.database().ref("events");
    var result = ref.orderByChild("endtime").startAt(currentTime);
    

    查询的Firebase文档:https://firebase.google.com/docs/reference/js/firebase.database.Query#startAt

    正如你所提到的那样,在清理数据库时,没有办法在firebase中自动完成(据我所知),所以如果你想避免手工清理数据库,最好写一个外部服务来做到这一点 .

相关问题