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
})