我正在尝试使用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);
});
});
我做错了什么?定义数据库的正确方法是什么?
答案 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);
});
});