gpt4 book ai didi

javascript - 在 Firebase 中延迟加载时防止加载重复项

转载 作者:行者123 更新时间:2023-12-03 05:44:01 27 4
gpt4 key购买 nike

我正在尝试使用 Firebase V3 延迟加载项目。我已经denormalized我的数据,但我想更进一步。

到目前为止,我尝试使用查询 .limitToLast() 过滤数据,如下所示:

var limitLength = 20;
var orderNode = "price";

firebase.database().ref(refPath).orderByChild(orderNode).limitToFirst(limitLength).on('value', function(snapshot) {
//success: snapshot.val()
}, function(error){
//error
});

问题是,当我将长度增加到 40 时,Firebase 也会重新加载前 20 个项目。当 limitLength 增加时,这显然会损害我的性能。

如何克服这个问题? IE。我怎样才能只加载21...40位置的数据?

最佳答案

您无法让查询跳过前 20 项。但您可以告诉它某个特定项目开始。这样您就可以完成几乎相同的事情,不同之处在于实现它的方式以及连续查询对之间的单个重叠项。

var limitLength = 20;
var orderNode = "price";
var latestKey, latestProp;

var location = firebase.database().ref(refPath);
var query = location.orderByChild(orderNode).limitToFirst(limitLength);
query.on('value', function(snapshot) {
snapshot.forEach(function(child) {
latestKey = child.key;
latestProp = child.val()[orderNode];
});
query = location.orderByChild(orderNode).startAt(latestProp, latestKey).limitToFirst(limitLength+1);
}, function(error){
//error
});

关于javascript - 在 Firebase 中延迟加载时防止加载重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406420/

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