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

时间:2016-12-11 09:53:37

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

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

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

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

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

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

由于

1 个答案:

答案 0 :(得分:-1)

如果您有保存在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中自动完成(据我所知),所以如果你想避免手工清理数据库,那么它就是'写一个外部服务来做这件事是个好主意。