1
目前我的數據是這樣的Firebase中的快照。如何深入挖掘快照
{
'listone':
{
'entrydate1':
{
'random key 1':
{
'name': 'Chris';
'date': '24 May 2016'
}
'random key 2':
{
'name': 'John';
'date': '25 May 2016'
}
}
'entrydate2':
{
'random key 1':
{
'name': 'Chris';
'date': '24 May 2016'
}
'random key 2':
{
'name': 'John';
'date': '25 May 2016'
}
}
}
}
隨機密鑰是由火力childByAutoID()
產生的問題是,當我把我的快照,我怎麼弄的細節每個隨機密鑰?基本上我需要檢索listone
的數據,我將通過排序最早的entrydate
來填充我的tableview
。然而,在獲得快照之後,我失去了如何從快照中獲取信息的問題。
override func viewDidLoad() {
super.viewDidLoad()
ref = FIRDatabase.database().reference()
let uid = FIRAuth.auth()!.currentUser!.uid
let listOneRef = ref.child(uid + "/listone")
_ = listOneRef.observeEventType(.Value, withBlock: { (snapshot) in
for item in snapshot.children {
let child = item.children.allObjects
for snap in child {
//anyitems was initialized as [AnyObject] array
self.anyitems.append(snap)
}
}
self.tableView.reloadData()
})
我不知道如何實際使用細節。當我打印anyitems
我也看到一些細節,即
[Snap (-KJ-jqTNf3MTtY8YRH-3) {
Name = "Chris";
Date = "30 May 2016";
}, Snap (-KJ01QYoTedZkClsf13Y) {
Name = "John";
Date = "30 May 2016";
}]
謝謝您的回答。然而,Anyitems是'AnyObject'。所以不會有'snapshot.value' – Chris
這就是爲什麼我做了第三個例子。 :) – Moritz
哦對!我試過了,但它沒有奏效,但是當我讓... = ...並且它工作時,我將它聲明爲FIRDataSnapshot。基本上從一開始我會聲明這樣'如果讓快照= snapshot.children.allObjects爲? [FIRDataSnapshot]'並繼續我的循環,我會得到正確的輸出,謝謝! – Chris