gpt4 book ai didi

ios - Swift 3 Firebase 检索 key 并传递给 View Controller

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

我花了几个小时研究相同的问题,但我找到的答案都无法解决这个问题。简单的应用程序从 Firebase 数据库检索数据并从 TableView 传递到另一个 View Controller 。主要数据将通过,但如果没有识别“键”,我将无法编辑信息,我尝试将其设置为 childByAutoID() 但后来更改为 时间戳。无论采用哪种方法,我得到的只是条目信息而不是实际的 key 本身。

func loadData() {
self.itemList.removeAll()
let ref = FIRDatabase.database().reference()


ref.child(userID!).child("MyStuff").observeSingleEvent(of: .value, with: { (snapshot) in



if let todoDict = snapshot.value as? [String:AnyObject] {
for (_,todoElement) in todoDict {



let todo = TheItems()



todo.itemName = todoElement["itemName"] as? String
todo.itemExpires = todoElement["itemExpires"] as? String
todo.itemType = todoElement["itemType"] as? String



self.itemList.append(todo)

print (snapshot.key);

}



}

self.tableView.reloadData()

}) { (error) in
print(error.localizedDescription)
}


}

最佳答案

如果您的数据如下所示:

Uid: {
MyStuff: {
AutoID: {
itemName: “Apocalypse”,
itemExpires: “December 21, 2012”,
itemType: “Catastrophic”
}
}
}

然后我会这样查询:

ref.child(userID!).child("MyStuff").observeSingleEvent(of: .value, with: { (snapshot) in
for child in snapshot.children {
let child = child as? DataSnapshot
let key = child?.key as? String

if let todoElement = child?.value as? [String: Any] {
let todo = TheItems()
todo.itemName = todoElement["itemName"] as? String
todo.itemExpires = todoElement["itemExpires"] as? String
todo.itemType = todoElement["itemType"] as? String

self.itemList.append(todo)
self.tableView.reloadData()
}
}
})

此外,正如我在评论中所说,如果您使用 .updateChildValues(),您只需上传 key 和数据即可。示例:

let key = ref.child("userID!").childByAutoId().key
let feed = ["key": key,
“itemName”: itemName] as [String: Any]

let post = ["\(key)" : feed]

ref.child("userID").child("MyStuff").updateChildValues(post) // might want a completionBlock

然后您可以像获取其余值一样获取 key 。所以你的新数据将如下所示:

Uid: {
MyStuff: {
AutoID: {
itemName: “Apocalypse”,
itemExpires: “December 21, 2012”,
itemType: “Catastrophic”,
key: “autoID”
}
}
}

关于ios - Swift 3 Firebase 检索 key 并传递给 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46055187/

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