在继续加载应用程序之前,我试图确保 Firebase 已连接。我正在使用 Firebase 自己的代码示例中的代码。我已将它放在主视图 Controller 的 ViewDidLoad 函数中:
let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { snapshot in
if let connected = snapshot.value as? Bool, connected {
print("Connected")
} else {
print("Not connected")
// show alert here
}
})
问题是上面的代码总是在显示“已连接”之前显示“未连接”。这是一个问题,因为当应用程序未连接时,它应该显示警报,并且每次用户打开应用程序时都会触发警报。
这是预期的行为吗?如果是这样,是否有解决办法?
如何在 Firebase 每次都返回未连接的情况下检查 Firebase 连接?
最佳答案
您观察到的行为是预期的。 Firebase SDK 无法在启动时立即建立连接。在启动和连接首次可用之间总会有一些延迟。
此外,我认为这种策略不是个好主意,因为移动连接可能时断时续且断断续续。 Firebase 无法确保您的应用即使在首次建立后也能保持良好的连接。如果您假设应用程序始终没有连接,您的应用程序将更易于使用。用户已经开始期待一定程度的离线使用,实时数据库在某种程度上支持 offline data persistence .
关于swift - Firebase 连接测试显示在启动时断开连接,即使已连接也是如此。我该如何更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51717204/