确定是否存在与firebase数据库的连接的正确方法

时间:2016-10-28 06:18:10

标签: firebase firebase-realtime-database swift3

func checkForConnection()  {
        let connectedRef = FIRDatabase.database().reference(withPath: ".info/connected")
        connectedRef.observe(.value, with: { snapshot in
            if let connected = snapshot.value as? Bool , connected {
                print("Camera View Connected")
                self.connectionStatus = 1
                self.UpdateConnection()
            } else {
                print("Camera View Not connected")
                self.connectionStatus = 0
                Timer.scheduledTimer(timeInterval: TimeInterval(2.0), target: self, selector: #selector(CameraViewController.UpdateConnection), userInfo: nil, repeats: false)
            }
        })
    }

    func UpdateConnection()  {
        let connectionBanner = Banner(title: "Connection Error", subtitle: "Tap to dismiss", image: UIImage(named: "Wi-Fi"), backgroundColor: UIColor(hexString: "#DA4167"))
        if connectionStatus == 0 {
            print("connection banner shown from camera view")
            // What happens when there's no connection

            connectionBanner.dismissesOnTap = true
            connectionBanner.show(duration: 10)
        }

        else if connectionStatus == 1 {
            connectionBanner.dismiss()
        }
    }

这里我有一个代码,可以检测应用程序是否与数据库有连接。如果没有,它将显示横幅通知,告知用户他已断开连接。但是在第一次安装时,尽管有连接,它始终显示没有连接。

我理解应用程序需要一段时间才能建立连接,但有没有办法在调用横幅之前实现重试?我已经设置它,即使没有连接,如果connectionState仍然是0,它将在执行横幅之前延迟。

非常感谢!

编辑:

这是我的viewDidLoad:

override func viewDidLoad() {



        // for connection 
        checkForConnection()
}

这里只有一个功能来检查连接。

0 个答案:

没有答案