gpt4 book ai didi

ios - 使用 Firebase 分页时重复按键

转载 作者:行者123 更新时间:2023-11-29 05:22:52 26 4
gpt4 key购买 nike

我正在学习 Firebase 分页。我正在使用一种方法,将最后添加的项目的 key 存储在上一页中,以便下一页可以从那里继续。

问题是,当使用 ref.queryStarting(at value: lastItemKey) 继续从最后添加的键检索项目时,最后一个项目会重复两次(因为 queryStarting > 包含)。

因此,如果我将查询限制为 5 个,我最终只会得到 4 个新项目,因为 1 个将是重复的。

我想到的唯一解决方案是再请求一项并删除重复的一项,但我想知道这样做是否有效。 (因为我们在每个查询中浪费了一项)

如果有任何帮助,我的代码如下所示:

    // rest of the pages 
if let lastItemID = lastItemKey {
itemPageRef = self.itemsRef.queryOrderedByKey().queryStarting(atValue: lastItemID)
.queryLimited(toFirst: UInt(amount))
} else {
// First page of data: we retrieve the first (amount) items
print("We are in the first page of DATA")
itemPageRef = self.itemsRef.queryOrderedByKey().queryLimited(toFirst: UInt(amount))
}

itemPageRef.observeSingleEvent(of: .value, with: { [weak self] (snapshot) in

最佳答案

请求页面之间的重叠子节点是 Firebase API 支持的唯一方式。由于没有其他方法可以做到这一点,因此也没有更有效的方法。

也就是说,它通常非常高效,特别是当您使用 25 个以上子节点的页面大小时,这在我见过的大多数用例中也更合理。

关于ios - 使用 Firebase 分页时重复按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58494390/

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