在继续加载应用程序之前,我试图确保Firebase已连接。我正在使用Firebase自己的代码示例中的代码。我已将其放在主视图控制器的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每次都未首先连接?
答案 0 :(得分:1)
您正在观察的行为是预期的。 Firebase SDK无法在启动后立即建立其连接。从启动到首次建立连接之间总是会有一些延迟。
此外,我也不认为此策略是一个好主意,因为移动连接可能是断断续续的。 Firebase可能无法确保您的应用程序即使在首次建立后仍能保持良好的连接。如果您假设应用程序始终没有连接,那么它将使您的应用程序更易于使用。用户已经开始期望某种程度的脱机使用,而实时数据库在某种程度上通过offline data persistence对此提供了支持。