删除2小时以上的火灾数据我想删除两个小时以上的任何数据。目前,在客户端,我循环遍历所有数据,并在任何较旧的数据上运行DELETE。当我这样做时,每次删除某个内容时都会调用db.on(‘value’)函数。另外,只有在客户端连接时才会删除这些内容,如果两个客户端同时连接,会发生什么情况?我可以在哪里设置删除旧数据的东西?我在JavaScriptDate.Now()创建的每个对象中都有一个时间戳。
3 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
var ref = firebase.database().ref('/path/to/items/');var now = Date.now();var cutoff = now - 2 * 60 * 60 * 1000; var old = ref.orderByChild('timestamp').endAt(cutoff).limitToLast(1);var listener = old.on('child_added', function(snapshot) { snapshot.ref.remove();});
child_added
value
limitToLast(1)
child_added
更新
exports.deleteOldItems = functions.database.ref('/path/to/items/{pushId}').onWrite((change, context) => { var ref = change.after.ref.parent; // reference to the items var now = Date.now(); var cutoff = now - 2 * 60 * 60 * 1000; var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff); return oldItemsQuery.once('value', function(snapshot) { // create a map with all children that need to be removed var updates = {}; snapshot.forEach(function(child) { updates[child.key] = null }); // execute all updates in one go and return the result to end the function return ref.update(updates); });});
/path/to/items
functions-samples
茅侃侃
TA贡献1842条经验 获得超21个赞
添加回答
举报
0/150
提交
取消