Firebase REST API - 如何观察和监听更改

时间:2018-02-02 19:00:26

标签: ios swift rest firebase firebase-realtime-database

Firebase Swift API提供方法observeEventType:withBlock,可按如下方式使用:

 newMessageRefHandle = messageQuery?.observe(.childAdded, with: { (snapshot) -> Void in

        let messageData = snapshot.value as! Dictionary<String, String>

        if let id = messageData["senderId"] as String!, let name = messageData["senderName"] as String!, let text = messageData["text"] as String!, text.characters.count > 0 {

            self.addMessage(withId: id, name: name, text: text)

        } else {
            print("Error! Could not decode message data")
        }
    })

每次添加新子项时都会执行完成块。有没有办法使用REST API做同样的事情?

1 个答案:

答案 0 :(得分:1)

Firebase实时数据库有一个流API,it's documented here。来自文档:

  

Firebase REST端点支持EventSource / Server-Sent Events   协议。将更改流式传输到Realtime中的单个位置   数据库,你需要做一些事情:

     
      
  • 将客户的Accept标头设置为“text / event-stream”
  •   
  • 尊重HTTP重定向,特别是HTTP状态码307
  •   
  • 如果该位置需要阅读权限,则必须包含auth参数
  •   
     

作为回报,服务器将发送命名事件作为数据的状态   在请求的URL更改。这些消息的结构符合   到EventSource协议。

event: event name
data: JSON encoded data payload

Click through to the docs查看您可以预期的所有不同事件。