4
某人如何创建指向Firebase数据的临时网址,但是数据(和网址)在特定时间后即5分钟或15分钟后会被销毁?使用Firebase过期网址
某人如何创建指向Firebase数据的临时网址,但是数据(和网址)在特定时间后即5分钟或15分钟后会被销毁?使用Firebase过期网址
根据数据的存储方式,有几种不同的选项可以通过时间戳删除数据。
假设数据是无序的,你所储存的时间戳字段中的每个记录,那么你可以简单地开始从第一条记录阅读和删除它们,直到你找到你想保留一个:
<script>
var FB = new Firebase(YOUR_URL);
var childRef = FB.child(TABLE_WITH_RECORDS_TO_DELETE);
var oneWeekAgo = new Date().getTime()-1000*60*60*24*7; // one week ago
var fx = function(snapshot) { // keep a ref to this so we can call off later
var v = snapshot.val();
if(v.expires_on_date < oneWeekAgo) {
// delete the record
snapshot.ref().remove();
}
else {
// we found the first keeper, so we are done
childRef.off('child_added', fx);
}
}
// fetched records and test to see how old they are
childRef.on('childAdded', fx);
</script>
如果数据按时间戳排序,你可以检索和删除它们如下:
var FB = new Firebase(YOUR_URL);
var childRef = FB.child(TABLE_WITH_RECORDS_TO_DELETE);
var oneWeekAgoMinusOne = new Date().getTime()-1000*60*60*24*7-1; // one week ago
// fetched using endAt, so only retrieving older than 1 week
childRef.endAt(oneWeekAgoMinusOne).on('childAdded', function(snapshot) {
// delete the record
snapshot.ref().remove();
});
现在总是使用第二种方法。如果需要,使用.sort()功能。 –
有在火力地堡数据没有过期。您可以轻松创建一些过程,即在给定时间段后简单地删除数据。要安全地做到这一点,需要该进程在某种服务器上运行。 –
@FrankvanPuffelen这听起来像个好主意。你能解释一种方法来轻松解决这个问题吗? – nodebase
如何在可能过期的每一条数据中添加时间戳?然后,在您自己的服务器上运行定期检查**或**将时间戳记保存在专门的客户端中,只需从服务器上删除时间到。 –