我正在构建一个“事件”应用程序,其中一些用户在应用程序中放置了一些事件,其他用户可以看到它们。假设每个事件都有一个开始日期时间,结束日期时间和名称。如何在Firebase数据库中过期数据
我想让用户只看到当前事件,即以<开始<结束的事件。这是某种过滤功能,Firebase不支持这种过滤功能。我可以通过startAt和endAt查询在我的应用程序中实现此目的。但是,这不会帮助我隐藏用户的机密数据,因为虽然我的应用程序不会访问过去和将来的事件,但任何人都可以从其REST API查询数据库以查看这些事件。
因此,我决定用三个事件列表构造数据:past_events
,current_events
和future_events
。
现在,问题是,我需要将事件从future_events
移动到current_events
和从current_events
到past_events
时候是正确的。我相信无法在Firebase中自动触发这些更改。因此,我正在考虑在某个地方定期进行清理。
这是处理Firebase中数据过期的最佳方式吗?任何建议/意见?
感谢
如果Firebase结构设置正确,则可能需要考虑更改设计,因为“移动”数据以“清理”通常不是必需的。例如,在运行查询时,只返回存储在该节点中的时间戳大于7天前的那些结果。这样,您就不必担心代码为您处理“即将到期”的数据。或者返回时间戳为七天后节点的结果。所有在代码和Firebase规则中完成的操作都会限制用户访问其他任何数据。 – Jay
@Jay,那么'''代码处理你的部分与@Pawel Janicki的答案是一样的,问题是,它隐藏了来自应用程序用户的数据,但是当你去查询数据库时直接(例如通过邮差),你可以看到所有事件。 依赖于应用程序端查询不提供数据库安全性。我希望这些数据是保密的,因此没有人(包括脚本小子)应该看到。这只能通过安全规则来实现,安全规则不能提供过滤。 –