我在创建消息时没有问题,但在下载发送给他们的消息时遇到问题。
我的检索代码和 firebase 结果是这样的:
func MessagesFunc()
{
let messageDB = Database.database().reference().child("Message").child((Auth.auth().currentUser?.uid)!)
messageDB.observe(.childAdded) { (snapshot) in
let newMessage = snapshot.value as! Dictionary<String, String>
let message = newMessage["Message"]
let from = newMessage["fromID"]
let post = ChatMessages()
post.aMessage = message!
post.Interested = from!
print(post.aMessage)
//no message is printed
self.messagesArray.append(post)
self.tableView.reloadData()
}
}
我知道数据库代码需要引用 child ,在本例中是“消息”,还有当前用户 - uid。但是,由于没有成功检索,我显然在某处遗漏了一个细节。我指定了“消息”和 UID,但我只是没有看到教程或意识到将这两个想法组合成一个渐进操作的后续步骤。有帮助吗?
最佳答案
您正在将您的连接设置为:
...reference().child("Message").child((Auth.auth().currentUser?.uid)!)
但是/Message
下没有当前用户ID的 child 。消息以推送 ID 键控并具有用户 ID 属性。您需要使用查询来获取来自/向特定用户发送的消息。
例如获取当前用户发送的消息:
let messageDB = Database.database().reference().child("Message")
let messageQuery = messageDb.queryOrdered(byChild:"fromID").queryEqual(toValue: (Auth.auth().currentUser?.uid)!)
messageQuery.observe(.childAdded) { (snapshot) in
关于ios - 无法检索 firebase 用户的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48130331/