无法保持WatchOS 3数据与Firebase同步?

时间:2016-12-22 04:38:42

标签: swift firebase firebase-realtime-database watch-os-3

由于删除WatchOS3无法直接连接到Firebase数据库,因此如果手机被锁定或应用未处于活动状态,我就会遇到阻止手表应用与数据保持同步的问题。

我目前正在通过电话中的“清醒”进行观看请求更新,这有效。但是,对Firebase中的数据进行的任何更改/添加都不会触发在后台运行的手机上的更新以通知手表。如果手机应用程序处于打开状态,则可以完美地传递通信。

我正在搜索Apple文档,但我没有看到我所缺少的内容,以便在后台保持手机/ Firebase连接处于活动状态。

有没有人对此有更好的运气或建议更强大的解决方案?

当前观察代码/流程:

func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
        print("RECEIVED MESSAGE from Phone")

        // REMOVED: This is where I parse json return and reloads the view data

        replyHandler( [ "Pages" : "Good to Go" ] )
    }

    func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
        print ("Watch Activation Complete")
    }

    override func awake(withContext context: Any?) {
        super.awake(withContext: context)

        let currentDate = Date()
        sendMessageToPhone(command: dataCommands.sendData, value: currentDate.description)
    }

    func sendMessageToPhone(command: dataCommands, value: String) {
        print("SENDING MESSAGE from Watch")
        let data = [command.rawValue : value]
        session.sendMessage(data, replyHandler: {(data: [String : Any]) -> Void in
            print("Phone Got Message")
        }, errorHandler: {(error ) -> Void in
            print("Phone did not get message.")
            self.messageErrorHandler(error: error as NSError)
        })
    }

0 个答案:

没有答案