使用Swift 3在JSQMessagesViewController中读取未读消息

时间:2017-08-08 11:06:36

标签: ios swift swift3 jsqmessagesviewcontroller

我在按钮点击时尝试此方法但未获得结果:

@IBAction func childAdded(_ sender: Any) {       
    let ref = Constants.refs.databaseChats.childByAutoId()

    ref.observe(DataEventType.childAdded , with: { (snapshot) in
        let msgData = snapshot.value as? NSDictionary
        let msg = msgData?["status"] as? String

        if msg == "sent" {
            let prntRef = Constants.refs.databaseChats.child("chats").child(ref.key)
            prntRef.updateChildValues(["status":"Read"])
            print("Message Read")
        }
    }) { (e) in
        print(e.localizedDescription)
    }
}

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,有些方法比其他方法更有优势。一种解决方案是在lasReadVariable中存储firebase等变量。这是user1的最后一条读取消息,然后每次打开chatView时,都会为此线程上的最后一条读取消息更新lasReadVariable。在observer的对话中为user2设置lasReadVariable,并相应地更新messageState

如果我能给出更多澄清,请告诉我。