gpt4 book ai didi

swift - 如何提取firebase中的所有子项,其某些部分等于某个字符串

转载 作者:行者123 更新时间:2023-11-30 11:14:23 24 4
gpt4 key购买 nike

this firebase structure我如何仅检索子键几乎具有当前用户 ID 的聊天的子项。聊天子 ID 是这样的 11-126

所以假设 mi 用户 id 为 11。我想检索所有子项及其所有数据,其中 - 的任何一侧都有 11。如果有一个 child 的编号为 89-11 o 253-11 o 11-254,我想检索所有这些 child 。现在我正在检索所有子项并观察 key 是否包含我对此代码感兴趣的 id。

chatsRef.observe(.childAdded, with: { [weak self] snapshot in
if snapshot.key.contains(String(requestManager.instance.user.id!)){
if let data = snapshot.value as? [String: Any]{
let id = data["id"] as! String
let name = data["name"] as! String
let message = data["body"] as? String
let senderId = data["senderId"] as! String
let url = self?.rootRef.child("user").child(senderId).value(forKey: "url") as? String

}
}
})

转换为字典后出现错误。

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an optional value.

数据值是这样的。

enter image description here似乎 data["0"].value 有效,但事实并非如此。知道如何提取添加的子项的所有值

最佳答案

听起来您想要检索用户 11 的所有聊天记录,这意味着 senderIdrecipientId11。 Firebase 实时数据库无法进行此类 OR 查询,该数据库仅支持对单个属性的查询。

相反,请向 JSON 添加一个数据结构,用于保存每个用户 ID 的聊天室 ID。所以:

"userChats": {
"11": {
"11-126": true
}
"126": {
"11-126": true
}
}

通过这个附加的数据结构,您可以轻松地在 /userChats/$uid 下查找用户的聊天室,然后为其加载单独的聊天室。

关于swift - 如何提取firebase中的所有子项,其某些部分等于某个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51885395/

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