Java中的Firebase Cloud Function。 Remove()函数不起作用

时间:2018-06-25 06:32:35

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

我具有Firebase云功能。除了行deedRef.limitToLast(1).remove();之外,一切都在helloWorld函数中按预期工作。我也尝试做.ref({/deeds/${deedID})。remove(),为什么我不能从Cloud函数内的Firebase中删除数据? http请求的输出为“错误:无法处理该请求”。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

const deedRef = admin.database().ref('/deeds');
const oldDeedRef = admin.database().ref('/oldDeeds');
exports.helloWorld = functions.https.onRequest((req, res) => {

    deedRef.limitToLast(1).once("value", (snapshot) => {
                snapshot.forEach((deedSnapshot) =>{
                    let deedID = deedSnapshot.val().id;
                    let text = deedSnapshot.val().message;
                    oldDeedRef.push({
                        id: deedID,
                        message: text
                    })
                })
            })
    deedRef.limitToLast(1).remove();
    res.send("Congrats For running the function");
});

1 个答案:

答案 0 :(得分:2)

问题与云功能无关。

deedRef.limitToLast(1)返回一个Query类型的对象。 Query没有称为remove()的方法。因此,您的代码将在运行时失败,并显示一条消息。

如果要从实时数据库中删除一些数据,则需要一个Reference类型的对象,该对象具有一个remove()方法。这将删除引用位置的所有内容。