Firebase:如何根据时间戳键删除节点内的项目范围?

Firebase: how to delete range of items inside node based on timestamp keys?

我的 Firebase 数据库数据如下所示:

所以例如我们假设当前时间是1637149389我想根据下图删除所有数据:

我尝试使用此代码,但结果是我的整个数据路径都被删除了(包括不早于 5 秒的数据):

var timestamp = Math.round(Date.now() / 1000) - 5; //get Timestamp in Mili, convert to Seconds, and then set it 5 seconds to the past
var UID = 'uid1';

const ref = ref(
    database,
    'device_realtime/' + UID
);

var refQuery = query(
    ref,
    ...[fb.orderByKey(), fb.endAt(timestamp.toString())]
);

remove(refQuery);

控制台:

如何根据时间戳仅删除特定范围的项目?

要删除节点,您需要知道该节点的完整路径。 Firebase 不支持 update/remove 查询,您可以在其中将根引用和条件传递给数据库。

因此您需要在要删除的每个子节点上调用 remove()

类似于:

get(refQuery, (results) => {
  results.forEach((snapshot) => {
    remove(snapshot.ref);
  })
})