我只是尝试用最新版本和SWIFT3.0来观察JSQMessages,下面的代码是在任何其他问题中报告的,但是由于某种原因,FIRDataSnapshot中包含的字典返回编译错误"Type“没有下标成员。

有谁遇到过同样的问题并克服了吗?谢谢!
发布于 2016-10-07 16:27:14
我更喜欢尽可能长时间地坚持使用Firebase数据类型。在这种情况下,您可以使用以下方法获得值:
snapshot.childSnapshot(forPath: "text").value as! String所以:
private func observeMessages() {
let messagesQuery = messageRef.queryLimited(toLast: 25)
messagesQuery.observe(.childAdded) { (snapshot: FIRDataSnapshot!) in
let id = snapshot.childSnapshot(forPath: "name").value as! String
let text = snapshot.childSnapshot(forPath: "text").value as! String
self.addMessage(id: id, text: text)
self.finishReceivingMessage()
}
}发布于 2016-10-07 16:04:11
我已经找到了一个解决方案,不确定这是最好的方法,基本上我强制转换为NSDictionary:
private func observeMessages() {
let messagesQuery = messageRef.queryLimited(toLast: 25)
messagesQuery.observe(.childAdded) { (snapshot: FIRDataSnapshot!) in
let id = (snapshot.value as! NSDictionary)["name"] as! String
let text = (snapshot.value as! NSDictionary)["text"] as! String
//let photoUrl = (snapshot.value as! NSDictionary)["photoUrl"] as! String
self.addMessage(id: id, text: text)
self.finishReceivingMessage()
}
}https://stackoverflow.com/questions/39921323
复制相似问题