gpt4 book ai didi

swift - 我们如何在 Firebase 中将特定用户的消息发送给另一个用户

转载 作者:可可西里 更新时间:2023-11-01 01:59:06 24 4
gpt4 key购买 nike

我想获取从特定用户发送到另一个用户的消息。我无法做到这一点。当我使用下面的代码时,我从接收者那里得到消息。我需要的是将消息特定的 recieverid 发送到特定的 senderid

我的数据库快照

enter image description here

这是我的代码:

Database.database().reference().child("chats")
.queryOrdered(byChild: "receiverid")
.queryEqual(toValue: "xEdACTcUWeOwrdIqjxeP5t5y4Kg2")
.observe(.childAdded, with: { snapshot in
let msgDict = snapshot.value as! [String: Any]
print(msgDict)
})

最佳答案

使用 Firebase 时,您应该根据 View 的需要来构建数据。

看起来您正在尝试执行基于 2 个属性的查询,而实时数据库尚不能执行此操作。我建议更改数据结构。使用您的 senderId 作为每次聊天的关键。这样你就会有这样的东西:

"chats"{
"-L1RW456789":{
"messageKey":{
"name":"ddddd",
"receiverid":"xEdACTcUWeOwrdIqjxeP5t5y4Kg2",
"sender_id":"-L1RW456789",
"text":"Hello World"
},
"message2Key":{
"name":"eeeee",
"receiverid":"xEdAdasd23123",
"sender_id":"-L1RW456789",
"text":"How are you?"
}
}
}

(您现在可以删除“sender_id”属性,因为现在可以通过获取消息父节点的键来访问它)您将能够像这样运行查询:

Database.database().reference().child("chats").child("-L1RW456789")
.queryOrdered(byChild: "receiverid")
.queryEqual(toValue: "xEdACTcUWeOwrdIqjxeP5t5y4Kg2")
.observe(.childAdded, with: { snapshot in
let msgDict = snapshot.value as! [String: Any]
print(msgDict)
})

关于swift - 我们如何在 Firebase 中将特定用户的消息发送给另一个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48005829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com