我的 Firebase 資料庫資料如下所示:

- 數字是以秒為單位的時間戳(因此資料基本上是一個時間序列)。
- 我想洗掉所有 OLDER 然后 5 秒的資料。
- 我正在使用新的
Version 9 Modular JavaScript SDK's
因此,例如,如果我們取當前時間是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);
- 我有點困惑,因為當我呼叫
get(refQuery)相同的查詢時,我的結果是正確的。 - 我只看到 5 秒之前的資料!
安慰:

如何根據時間戳僅洗掉特定范圍的專案?
uj5u.com熱心網友回復:
要洗掉節點,您需要知道該節點的完整路徑。Firebase 不支持更新/洗掉查詢,您可以將根參考和條件傳遞給資料庫。
因此,您需要呼叫remove()要洗掉的每個單獨的子節點。
就像是:
get(refQuery, (results) => {
results.forEach((snapshot) => {
remove(snapshot.ref);
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358855.html
