【发布时间】:2019-10-15 12:53:28
【问题描述】:
我想得到以下结构(Firebase 数据库的屏幕截图):
在聊天中我有聊天的 id。有子用户 ID 和 id 和 name 值的用户。 首先,我查找用户拥有并想要获取的聊天记录,然后获取 chatId 的详细信息(用户及其 id 和名称)
我在 Swift 中有以下课程:
class Chat {
var chatId: String!
var userIds: [String]!
var userNames: [String]!
}
我有以下代码来获取详细信息,但我没有从 chatId 中获取 userIds 或 userNames:
func getChatsFromFirebase() {
self.ref = Database.database().reference()
self.ref?.child("users").child(userdefaults.getUserId()).child("chats").observe(.childAdded, with: { (snapshot) in
let chat = Chat()
chat.chatId = snapshot.key
chat.userIds = []
chat.userNames = []
//print(chat.chatId)
for i in 0..<self.chats.count {
let usersRef = self.ref.child("chats").child(self.chats[i].chatId).child("users").observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as? NSDictionary
for userid in value!.allKeys as! [String] {
let usersdetailsRef = self.ref.child("chats").child(self.chats[i].chatId).child("users").child(userid).queryOrdered(byChild: "name").observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as? NSDictionary
//print(value)
let id = value?["id"] as? String ?? ""
let name = value?["name"] as? String ?? ""
//print( id + ": " + name)
chat.userIds.append(id)
chat.userNames.append(name)
})
}
})
}
self.chats.append(chat)
self.tableView.reloadData()
})
}
我对 Firebase 主题非常陌生。有人可以在这里帮助我吗? 谢谢。
【问题讨论】:
-
您想要实现的究竟是什么?您是否希望通过引用聊天 ID 来获取用户名
-
是的,我想要来自 chatid 的用户名
-
@AakashDave 我有来自 Chats 的聊天 ID,并且我想要在 chatid 中给出的用户 ID 的用户名
-
我已经更新了答案。如果它有效,请通过接受和支持它来关闭问题。否则请告诉我
标签: swift firebase firebase-realtime-database