在JSQMessagesViewController中读取UnRead状态

时间:2017-01-24 18:45:05

标签: ios firebase xcode7.3 jsqmessagesviewcontroller swift2.3

我正在使用Firebase并在Swift 2.3和Xcode 7.3中工作 我使用 JSQMessagesViewController 创建聊天应用程序 在实时模式和后台模式下聊天工作正常

我想在WhatsApp和Messenger等气泡中设置消息的读取,待处理和未读状态。

AnyOne帮助我????

1 个答案:

答案 0 :(得分:1)

是的,我解决了这个问题, 只需添加ChilChanged的观察者,当你更改firebase中的任何值时,这个观察者将触发

messageRef = channelRef!.child("messages")
messageRef.observeEventType(FIRDataEventType.ChildChanged, withBlock: { (snapshot) in
}) { (e) in
            print(e.localizedDescription)
        }

当您收到消息时,只需更新您的状态,当您执行此操作时,上述方法将在朋友设备上触发,您可以更改与Firebase数据库相关的本地对象

messageRef.observeEventType(FIRDataEventType.ChildAdded, withBlock: { (snapshot) in
if messageData["status"] as String! == "Sent"{
                        let prntRef  = FIRDatabase.database().reference().child("friends").child(self.chatId).child("messages").child(refKey)
                        prntRef.updateChildValues(["status":"Read"])
                    }
}) { (e) in
                print(e.localizedDescription)
                MBProgressHUD.hideHUDForView(self.view, animated: true)
        }