ios - 无法检索 firebase 用户的消息

标签 ios swift firebase-realtime-database firebase-authentication

我在创建消息时没有问题,但在下载发送给他们的消息时遇到问题。

我的检索代码和 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()
    }
}

enter image description here

我知道数据库代码需要引用 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/

相关文章:

ios - 在 GMSMapView 中添加和删除 KVO "myLocation"的观察者

mysql - 有什么方法可以将 MySQL 中的数据与 Firebase 同步吗?

javascript - 使用 Firebase 更新 FullCalendar 新事件

ios - Firebase 数据库索引路径

ios - 警告时 UIAlertController : 0x7ff211650140 called in Swift

ios - 搜索栏色调颜色

ios - apple-app-site-association 路径是否相对于 root 或 .well-known?

swift - 增加 Sprite ContainsPoint 大小

ios - 以编程方式模糊 Pop Over 后面的背景 View

ios - 应用程序关闭时 didFinishLaunchingWithOptions APNS