我有Dictionnary
:
["1hoxy7StFyU4QzQTwgDrwAoCZ": {
address = "example2";
date = "28-02-2017";
location = "....";
number = 1111;
user = S4KaKn5Qz4bDDha57DMLcnaCHn21;
}"1hoxy7StFyU4QzQfrsqfsqfDZz": {
address = "example2";
date = "28-02-2017";
location = "....";
number = 222;
user = S4KaKn5Qz4bDDha57DMLcnaCHn22;
}]
我想检索此user
的所有Dictionnary
值并将其附加到Array
。
使用Firebase数据库检索此Dictionnary
。
if let dict = snapshot.value as? [String : AnyObject] {
print(dict)
self.asksList.append(dict["user"] as! String)
print(self.asksList)
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
我该怎么做?在此先感谢您的帮助!
答案 0 :(得分:1)
您正在使用嵌套字典,因此您可以通过这种方式获取所有user
。
if let dict = snapshot.value as? [String : [String:Any]] {
for (_, value) in dict {
if let user = value["user"] as? String {
self.asksList.append(user)
}
}
//Firebase completion block will called in main thread so directly reload the tableView
self.tableView.reloadData()
}
OR 您可以使用flatMap
代替遍历for循环
if let dict = snapshot.value as? [String : [String:Any]] {
let array = dict.flatMap { $1["user"] as? String }
self.asksList += array
//Firebase completion block will called in main thread so directly reload the tableView
self.tableView.reloadData()
}