Firebase连接测试显示即使启动也已断开连接。我该如何更改?

时间:2018-08-07 00:20:08

标签: swift firebase firebase-realtime-database

在继续加载应用程序之前,我试图确保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每次都未首先连接?

1 个答案:

答案 0 :(得分:1)

您正在观察的行为是预期的。 Firebase SDK无法在启动后立即建立其连接。从启动到首次建立连接之间总是会有一些延迟。

此外,我也不认为此策略是一个好主意,因为移动连接可能是断断续续的。 Firebase可能无法确保您的应用程序即使在首次建立后仍能保持良好的连接。如果您假设应用程序始终没有连接,那么它将使您的应用程序更易于使用。用户已经开始期望某种程度的脱机使用,而实时数据库在某种程度上通过offline data persistence对此提供了支持。