gpt4 book ai didi

ios - 无法访问 Firebase 子项

转载 作者:行者123 更新时间:2023-11-28 15:38:21 26 4
gpt4 key购买 nike

我有一个 firebase 数据库引用

FIRDatabase.database().reference().child("messages").child("\(self.convoId!)").childByAutoId()

我想在 DisplayViewController 中从我的 firebase 数据库访问 ReceiverName,但是当我调用数据库引用时,由于 convoId 而出现错误。这就是 convoId 的声明方式(在 MessagesViewController 中)。

 override func viewDidLoad() {
super.viewDidLoad()
let receiverId = receiverData as! String
let receiverIdFive = String(receiverId.characters.prefix(5))
let senderIdFive = String(senderId.characters.prefix(5))
if (senderIdFive > receiverIdFive)
{
self.convoId = senderIdFive + receiverIdFive
}
else
{
self.convoId = receiverIdFive + senderIdFive
}
}

receiverData 是从 UserviewController 传递给 MessagesViewController 的,“senderId”是唯一标识当前发送消息的用户的字符串标识符,在 JSQMessagesViewController.h 中自动声明。所以基本上,我不能在我的 DisplayViewController 中重新声明 convoId。但是,在 DisplayViewController 中,我需要访问 ReceiverName。

这就是我尝试检索 ReceiverName 的方式:

let rootRef = FIRDatabase.database().reference()        
rootRef.child("messages").observeSingleEvent(of: .value) {
(snapshot: FIRDataSnapshot) in
let loggedInUserData = snapshot
if let postsDictionary = snapshot .value as? [String: AnyObject] {
for post in postsDictionary {
self.messages.add(post.value)
}
self.MessageTableView.reloadData()
}
}

然后我将派生数据填充到 tableviewcell 中:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "MessageCell", for: indexPath) as! MessageTableViewCell


//Configure the cell


print(messages[indexPath.row])
let message = self.messages[indexPath.row] as! [String: AnyObject]
cell.SellerName.text = message["ReceiverName"] as? String

return cell
}

最佳答案

在您的 observeSingleEvent 函数中试试这个:

...
for post in postsDictionary {
let messages = post.value as! [String: AnyObject]
for (id, value) in messages {
let info = value as! [String: AnyObject]
let receiver = info["ReceiverName"]!
print("\(id): \(receiver)")
self.messages.add(value)
}
}
...

关于ios - 无法访问 Firebase 子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44056912/

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