我想从Firebase数据库 child 中检索数据。但我不知道子节点名称。
我的数据库如下所示:
我试过了:
override func viewDidLoad() {
super.viewDidLoad()
let userID = Firebase.Auth.auth().currentUser?.uid
databaseRef = Database.database().reference().child("Users").child(userID!)
databaseRef.observe(.value, with: { (snapshot) in
var newItems = [Post]()
for item in snapshot.children {
let newPost = Post(snapshot: item as! DataSnapshot)
newItems.append(newPost)
}
self.postArray = newItems
self.tableView.reloadData()
print(newItems)
}) { (error) in
print(error.localizedDescription)
}
}
答案 0 :(得分:1)
在您当前的代码中,您已经循环多年。如果您还想循环使用几个月,则需要额外添加for
:
databaseRef = Database.database().reference().child("Users").child(userID!)
databaseRef.observe(.value, with: {(snapshot) in
for year in snapshot.children.allObjects as [DataSnapshot] {
for month in year.children.allObjects as [DataSnapshot] {
print(month.key)
}
}
}){
(error) in
print(error.localizedDescription)
}
这将打印月份。您可以通过以下方式获取特定月份的属性:
print(month.childSnapshot(forPath:"Key").value)