gpt4 book ai didi

ios - 如何通过一次观察访问 Firebase 数据库中的最新数据?

转载 作者:行者123 更新时间:2023-11-28 06:16:56 25 4
gpt4 key购买 nike

这似乎是一个简单的问题,但如果我调用:

query.observeSingleEvent(of: .value ...

然后我总是得到本地持久化的数据。解决这个问题的唯一方法(我发现)是设置一个无限期持续观察的观察者。

例如,假设我有一个可以查看用户个人资料的应用程序。该用户的数据在本地持久保存。十天后我回来查看相同的配置文件。该用户更改了他的名字(或其他名称)。我只需要观察一个事件,但那个事件会给我缓存的数据(现在已经过时了)。我不想为我访问的每个用户个人资料设置一个连续观察者,因为这会导致不必要的更新(比如我再也不会回到这个个人资料)。

无论如何,我希望这个问题是清楚的。将不胜感激任何见解。

编辑:

作为解决方法,我最终做的是简单地调用 observe(.value) 并让它响应两次。第一个响应来自缓存;第二个来自服务器。如果您不能保证在发出请求后立即建立连接,这会有所帮助。

最佳答案

据我了解,您想使用 observeSingleEvent 检索新数据。您可以附加 keepSynced 来执行此操作:

    let query = FIRDatabase.database().reference().child("item")

query.keepSynced(true)

query.observeSingleEvent(of: .value ...

编辑

如果无法按时建立 Firebase 连接,带有 keepSycned 的

ObserveSingleEventType 将不起作用。在 appLaunch 期间或在 appDelegate 中尤其如此,其中 Firebase 连接存在延迟,而是给出缓存的结果。如果启用了持久性并且 observeSingleEvent 可能会首先提供缓存数据,它有时也会不起作用。在这些情况下,连续 ObserveEventType 是首选,如果您绝对需要新数据,则应使用它。

关于ios - 如何通过一次观察访问 Firebase 数据库中的最新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44849598/

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