【问题标题】:How to use observeSingleEvent in Firebase with callback when not connected?未连接时如何在Firebase中使用带有回调的observeSingleEvent?
【发布时间】:2017-06-10 18:32:21
【问题描述】:

我正在使用 Firebase 构建 iOS 应用程序,我发现如果应用程序未连接到网络并且该位置没有缓存值,Firebase 中的方法 observeSingleEvent(带或不带取消块)甚至不会触发。

当应用程序失去与互联网的连接时,我需要向用户显示消息,但如果在使用 keepSynced 时该位置有缓存值,则无需这样做。

如果API没有错误可以检测连接或不返回,我该怎么办?由于文档说如果您无权访问此数据,将调用cancelBlock,但当应用程序没有连接时它甚至不会回调。

【问题讨论】:

    标签: ios firebase firebase-realtime-database


    【解决方案1】:

    if 和 else 语句检查您的问题?如果已连接,您将被调用 observeSingleEvent 函数

    let connectedRef = Database.database().reference(withPath: ".info/connected")
    connectedRef.observe(.value, with: { snapshot in
      if snapshot.value as? Bool ?? false {
        print("Connected")
      } else {
        print("Not connected")
      }
    })
    

    更多详情:Detecting Connection State

    【讨论】:

    • 感谢 Emre YILMAZ。在调用observeSingleEvent之前检测连接状态很好,但是如果我应该让用户在有位置缓存值的情况下继续使用App,而不是每次连接状态为假时都向用户显示无连接消息呢?
    • 可能有两种情况。如果没有重要信息,缓存值显示,可能是“没有连接互联网”通知@WillChen
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    相关资源
    最近更新 更多