首页 > 解决方案 > Javascript 中的 Firebase 云函数。删除()函数不起作用

问题描述

我有一个 Firebase 云功能。除了 deedRef.limitToLast(1).remove(); 行之外,helloWorld 函数中的所有内容都按预期工作。我也尝试过 .ref( /deeds/${deedID}).remove() 是否有原因我无法从云功能中的 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");
});

标签: javascriptfirebasefirebase-realtime-databasegoogle-cloud-functions

解决方案


该问题与 Cloud Functions 无关。

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

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


推荐阅读