【发布时间】:2018-01-10 09:32:41
【问题描述】:
首先,如果您对此提交有更好的标题或实际问题的建议,请随时编辑。我不知道如何成功地提出这个问题。
所以我已经快速浏览了几个 Firebase 聊天(iMessage/Facebook 聊天)教程。我知道如何发送消息 -
let ref = Database.database().reference().child("Message")
let childRef = ref.childByAutoId()
let toID = finalSelected.ContactID as Any
let fromID = Auth.auth().currentUser?.uid
let values = ["Message": messageTextField.text!, "toID": toID, "fromID": fromID!] as [String: Any]
childRef.updateChildValues(values) { (error, ref) in ...
而且我知道如何找回它们 -
let messagesOf = Auth.auth().currentUser?.uid
let messageDB = Database.database().reference().child("Message")
let userMessages = messageDB.queryOrdered(byChild: "toID").queryEqual(toValue: messagesOf)
userMessages.observeSingleEvent(of: .childAdded, with: { (snapshot) in
let values = snapshot.value as! Dictionary<String, String>
let message = values["Message"]
let from = values["fromID"]
let post = ChatMessages()
post.aMessage = message!
post.Interested = from!
self.messagesArray.append(post)
self.tableView.reloadData()
})
但是,我很难完成逻辑。我不明白这两个独立的事件如何组合成一个相同的最终结果——而不是两个不同的交易。让我看看我是否可以进一步解释...
我发送消息。然后,我以另一个用户的身份收到此消息。但我不明白如何下载同时引用两者的 to/from 数据。除非我忽略了一些细节,否则事件的单一或复数观察是否仅适用于一个用户?还是我在这里误解了一些概念?
对这个最终概念的帮助会很棒。谢谢。
【问题讨论】:
-
嘿,我很困惑。你的问题是什么。是否使消息出现在两个设备上?
-
我不明白如何编码发送和接收的消息出现在同一个数据集中。
-
在数据库中还是在应用程序中?
-
AKA,我知道如何分别下载/查看发送和接收的新消息,但我不知道如何将来自两个不同用户的这两个操作组合到一个数组中 - 我说轻轻“阵列”。
-
从数据库中的应用程序中。
标签: ios swift firebase firebase-realtime-database chat