删除较旧的Firebase数据

时间:2018-07-11 14:18:06

标签: javascript firebase firebase-realtime-database google-cloud-functions

我想删除2小时以上的数据。我尝试了另一个SO答案,但没有解决我的问题。

https://stackoverflow.com/a/32012520/2872091

现在,让我展示我的代码和firebase结构

Firebase结构:

image1

Index.js:

const functions = require('firebase-functions');
exports.deleteOldItems = functions.database.ref('Room/English/{pushId}')
.onWrite(event => {

  var ref = event.data.ref.parent; // reference to the items
  var now = Date.now();
  var cutoff = now - 2 * 60 * 60 * 1000;
  var oldItemsQuery = ref.orderByChild('time').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);

  });
});

然后,我将此js文件部署到了我的Firebase。

firebase deploy --only functions

部署成功,终端提示“ 部署完成!”。而且我可以在Firebase函数中看到 deleteOldItems 函数。

结果,我的结构和代码是这样的。将新数据添加到“房间/英语”节点后,没有任何变化。该节点中的数据(早于2小时)不会被删除。我该如何解决这个问题?我怎么了

1 个答案:

答案 0 :(得分:0)

.*