如何在Firebase中使用observeSingleEvent并在未连接时使用回调?

时间:2017-06-10 18:32:21

标签: ios firebase firebase-realtime-database

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

当App失去与互联网的连接时,我需要向用户显示消息,但如果在使用keepSynced时该位置有缓存值,则无需执行此操作。

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

1 个答案:

答案 0 :(得分:1)

if if else statetment检查你的问题?如果已连接,您将调用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