使用函数从Firebase中删除节点

时间:2017-10-05 17:31:57

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

我正在尝试使用cronjob从Firebase中删除一个节点,我有这个功能但是当它被执行时我得到一个错误,说“错误:无法处理请求”,日志说:“数据库未定义”

这是我的功能:

exports.cleanStatsOnRequest = functions.https.onRequest((req, res) => {
  const ref1 = firebase.database.ref;
  const dbref = ref1.child(`/dailystats`);
  console.log('removing dailystats');
  return dbref.remove
    .then(() => {
      res.send('dailystats removed');
    })
    .catch(error => {
      res.send(error);
    });
});

我做错了什么?定义数据库的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您需要使用Firebase Admin SDK从HTTP触发器云功能访问实时数据库。 This documentation向您展示了如何从数据库中读取。 This example显示写入数据库,这与删除类似。

答案 1 :(得分:1)

试试这个。 database,ref和remove是函数。阅读此guide

此外,您不应该返回 dbref.remove(),因为remove()将返回承诺

exports.cleanStatsOnRequest = functions.https.onRequest((req, res) => {
const ref1 = firebase.database().ref();     // changes here
const dbref = ref1.child('/dailystats');
console.log('removing dailystats');
return dbref.remove()                      // changes here
    .then(() => {
        res.send('dailystats removed');
    })
    .catch(error => {
        res.send(error);
    });
});