Ios Firebase连接管理器应仅返回一个结果

Ios Firebase连接管理器应仅返回一个结果,ios,swift,firebase,Ios,Swift,Firebase,我的以下文件位于: 然而,我的实施和测试: connectionCheck.observeEventType(.Value, withBlock: { snapshot in let connected = snapshot.value as? Bool if connected != nil && connected! { print("Connected")

我的以下文件位于:

然而,我的实施和测试:

        connectionCheck.observeEventType(.Value, withBlock: { snapshot in
            let connected = snapshot.value as? Bool
            if connected != nil && connected! {
                print("Connected")
            } else {
                print("Not connected")
            }
        })
Xcode中的输出说明:

Not connected
Connected
但是,如果我关闭wifi,结果只会是:

Not connected

如果我希望在没有连接的情况下允许操作发生并呈现给用户,我如何确保此Firebase侦听器只返回一次正确的响应?

作为建议,您可能需要添加一些附加功能

如果您想了解用户与Firebase的连接,应遵守文档中所述的.info/connected路径

我使用的设计模式是设置一个名为isConnected的全局应用程序变量,并将Firebase观察者附加到.info/connected路径

然后,在我的应用程序中,只要我需要知道用户是否已连接,我就会将KVO观察器连接到我的全局断开var

当用户断开连接(或连接)时,调用Firebase observer,将isConnected设置为false(或true)

然后,我的应用程序中观察到断开连接的var的任何位置都会收到断开/连接的通知,并可以采取适当的措施

这是密码

let connectedRef = rootRef.childByAppendingPath(".info/connected")

connectedRef.observeEventType(.Value, withBlock: { snapshot in

  self.isConnected = snapshot.value as! Bool //KVO property

        //this is just so you can see it's being set, remove
        if ( self.isConnected == true ) {
            print("connected")
        } else {
            print("not connected")
        }
        // testing code
})