gpt4 book ai didi

firebase - 如何使用 Firebase 将初始数据加载与增量子项分开?

转载 作者:行者123 更新时间:2023-12-02 14:41:10 25 4
gpt4 key购买 nike

我有一个应用程序,每 5 秒左右就会有新的子进程添加到 Firebase 中。我有数千个 child 。

在应用程序加载时,我希望以不同于每 5 秒一次的后续子项的方式处理最初的数千个子项。

您可能建议我使用 value,处理所有内容,然后使用children_added。但我相信,如果处理时间太长,我就有可能错过一点。

有没有办法在 Firebase 中执行此操作,保证我不会错过任何一点?

最佳答案

由于初始预加载数据的 child_added 事件将在父级上的 value 事件触发之前触发,因此您可以使用value 事件作为一种“初始数据加载”通知。这是我从 another similar StackOverflow question 稍作修改的一些代码.

var initialDataLoaded = false;
var ref = new Firebase('https://<your-Firebase>.firebaseio.com');

ref.on('child_added', function(snapshot) {
if (initialDataLoaded) {
var msg = snapshot.val().msg;
// do something here
} else {
// we are ignoring this child since it is pre-existing data
}
});

ref.once('value', function(snapshot) {
initialDataLoaded = true;
});

值得庆幸的是,Firebase 会智能地缓存此数据,这意味着创建 child_addedvalue 监听器只会下载一次数据。为已经通过网络的数据添加新的 Firebase 监听器的成本非常低,您应该放心定期执行此类操作。

如果您担心在实际上不需要时下载所有初始数据,我会按照评论中 @FrankvanPuffelen 的建议使用带时间戳的查询。这非常有效,并且使用 Firebase 查询进行了优化。

关于firebase - 如何使用 Firebase 将初始数据加载与增量子项分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27978078/

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