我在按钮点击时尝试此方法但未获得结果:
@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)
}
}
答案 0 :(得分:1)
有几种方法可以做到这一点,有些方法比其他方法更有优势。一种解决方案是在lasReadVariable
中存储firebase
等变量。这是user1的最后一条读取消息,然后每次打开chatView
时,都会为此线程上的最后一条读取消息更新lasReadVariable
。在observer
的对话中为user2设置lasReadVariable
,并相应地更新messageState
。
如果我能给出更多澄清,请告诉我。