swift - Firebase 连接测试显示在启动时断开连接,即使已连接也是如此。我该如何更改?

标签 swift firebase firebase-realtime-database

在继续加载应用程序之前,我试图确保 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/

相关文章:

xcode - 在第一个函数完成后调用第二个函数,它是使用 Swift 的 SKAction 重复计数

ios - 如何从 Swift 中的蓝牙特性中的 NSData 获取 NSDictionary

swift - 循环 [AnyObject]?结果中没有名为生成器的成员

javascript - Uncaught TypeError : Cannot add property 0, object is not extensible at Array.push

android - 在 Firebase 中启用持久性时实际上会发生什么?

java - 仅从 Firebase 的联系人列表中检索数据

ios - UILocalNotifications 不会出现在锁定屏幕上

java - Firebase 云消息推送通知出现错误

android - 电话身份验证在 Firebase 上创建新帐户并断开链接

android - 使用 UID 从 Firebase 检索位置并放入 Google map