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
如何在可能過期的每一條數據中添加時間戳?然後,在您自己的服務器上運行定期檢查**或**將時間戳記保存在專門的客戶端中,只需從服務器上刪除時間到。 –