gpt4 book ai didi

swift - 有什么方法可以获取 firebase 请求的状态?

转载 作者:行者123 更新时间:2023-11-28 15:46:24 24 4
gpt4 key购买 nike

似乎 Firebase 的一个常见用例是聊天应用程序,因此我开始在这种情况下使用它。我真的很享受解决身份验证并启动和运行基本聊天是多么容易。但是,当我开始尝试确定请求的状态并实现超时时,我陷入了循环。我专门在 Swift 中使用 Firebase。

我尝试实现的第一个状态是“发送”状态,但因为无法知道请求的状态,所以我最终将它们自动生成的 ID 存储在一个数组中,并在完整的处理程序中删除它们。这并不可怕,但我可以想到一些极端情况,例如有人在同步之前关闭了应用程序,所以我在队列中丢失了我的消息数组,但可能有一条消息没有同步。然后他们重新启动应用程序,但它不在正确的状态,因为 firebase 试图发送消息。

Firebase 数据库对象(“行”/“文档”/“节点”)中是否有任何标志可以告诉您数据实际上在服务器上。一个完整的回调很好,但它会在应用程序崩溃/关闭中间请求的情况下消失,这仍然意味着我必须编写自己的逻辑来知道节点是否同步,因为观察回调在节点打开之前触发服务器。有没有像 node.isSynced 这样的东西?

我要实现的第二个状态是失败状态。假设用户发送了一条消息,一分钟后由于连接不良而没有发送。我认为将发送状态放在那里是一种非常糟糕的体验,所以我希望有一个“发送失败”。

我希望使用 Firebase 实现聊天功能的人可以考虑这两个问题。我通读了文档,但我是否遗漏了一些 Firebase 范例,这些范例会让我觉得我不会违背 Firebase 信仰?

最佳答案

为了检测一个值是否已经被写入数据库,你可以使用completion listener。请在此处查看 Jay 的样本:Firebase completion listeners in swift

你绝对可以为某些操作做一个超时。但显示连接状态的更常见方法是 use Firebase's built-in .info/connected path to detect the connection state .

如果您在执行这些操作时遇到问题,请分享 minimal code that reproduces where you're stuck我们会看看。

关于swift - 有什么方法可以获取 firebase 请求的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980193/

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