gpt4 book ai didi

javascript - 从 Firebase Cloud Functions 中删除项目引用

转载 作者:行者123 更新时间:2023-12-03 04:26:26 26 4
gpt4 key购买 nike

我需要从列表中删除一个项目,但以下代码不起作用:

exports.removeOldItems = functions.database.ref('/chat/usersOnline/{userId}')
.onWrite(event => {
const snap = event.data;
if (!snap.exists()) return;

snap.forEach(it => {
if ( condition ) {
it.ref.remove(); <---- THIS NOT WORK
}
})

});

语句“it.ref.remove()”运行但未删除子项。可能出了什么问题?

更新

我不知道为什么,但使用parent.once(...)解决了问题:

exports.removeOldItems = functions.database.ref('/chat/usersOnline/{userId}')
.onWrite(event => {
if (!event.data.exists()) return;
const parentRef = event.data.ref.parent;

return parentRef.once('value').then(users => {
users.forEach(function(tabs) {
tabs.forEach(instance => {
if ( condition ) {
instance.ref.remove();
}
})
});
});

});

我使用以下示例作为指导:https://github.com/firebase/functions-samples/blob/master/limit-children/functions/index.js

最佳答案

发生这种情况可能是因为您没有返回 promise 。尝试类似的事情。

exports.removeOldItems = functions.database.ref('/chat/usersOnline/{userId}')
.onWrite(event => {
const snap = event.data;
var itemstoremove = [];
if (!snap.exists()) return;

snap.forEach(it => {
if ( condition ) {
itemstoremove.push(it.ref.remove()); <---- THIS NOT WORK
}
})
return Promise.all(itemstoremove);

});

关于javascript - 从 Firebase Cloud Functions 中删除项目引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43695896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com