删除超过 2 小时的 Firebase 数据
问题:
为了避免延迟和优化数据库性能,有效删除过时数据非常重要。此问题寻求一种方法来删除超过两个小时的 Firebase 数据。
解决方案:
Firebase 不允许使用“两小时前”等动态参数进行查询”。相反,我们可以对特定时间戳执行查询,例如“在过去的特定日期和时间之后”。
要删除旧数据,请考虑以下代码片段:
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(); });
它的工作原理如下:
对于 Firebase 的 Cloud Functions:
exports.deleteOldItems = functions.database.ref('/path/to/items/{pushId}') .onWrite((change, context) => { var ref = change.after.ref.parent; var now = Date.now(); var cutoff = now - 2 * 60 * 60 * 1000; var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff); return oldItemsQuery.once('value', function(snapshot) { var updates = {}; snapshot.forEach(function(child) { updates[child.key] = null }); return ref.update(updates); }); });
此函数每当 /path/to/items 下的数据被修改时执行,仅在修改时删除子节点。
以上是如何删除超过两小时的 Firebase 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!