gpt4 book ai didi

javascript - 计算 child 的数量并删除一些

转载 作者:行者123 更新时间:2023-12-02 16:52:43 25 4
gpt4 key购买 nike

我正在尝试计算我的 firebase 数据库中的子级数,并检查是否有 100 个。如果是,则应删除前 30 个。这是我的代码。我不太确定是否应该在这里使用 .remove() ,但我把它放在那里只是为了让您了解我正在尝试做什么

// counts number of childs
myDataRef.on('value', function (snapshot) {
var count = 0;
snapshot.forEach(function () {
count++;
});
// if childs are == 100, remove the first 30
if (count == 100) {
myDataRef.remove( /* first 30 */ );
}
});

还有一把 fiddle : http://jsfiddle.net/y920s63h/

希望我已经说清楚了!谢谢。

最佳答案

查看Web API ,有一个numChildren()每个快照上可用的方法。这似乎是获取计数的明显首选。

API 文档还表明 .remove() 不接受任何参数;所以没有办法执行任何类型的 .remove(/* first 30 */);

人们可能会尝试 .limit(30).remove() 来获取前 30 个并删除它们,但 limit() 返回的 Query 对象不支持不幸的是,remove() 方法。

相反,numChildren() 和 forEach() 的组合似乎是最好的方法:

myDataRef.on('value', function (snapshot) {
if( snapshot.numChildren() >= 100 ) {
var i = 0;
snapshot.forEach(function(ss) {
ss.ref().remove();
// returning true causes forEach() to stop iterating
// so we can use that to only grab 30
return ++i == 30;
});
}
});

关于javascript - 计算 child 的数量并删除一些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26444796/

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