root
|
@-clothing
|
@-nameBrandRalphLauren//topLevel
| |
| @-apparelTops//child
| | |-"garmetSweater":"white"
| | |-"garmetTshirt":"blue"
| | |-"postedBy":"user123"
| |
| @-apparelBottoms//child
| |-"garmetShorts":"tan"
| |-"garmetJeans":"blue"
| |-"postedBy":"user123"
|
@-nameBrandNike//topLevel
|
@-apparelTops//child
|-"garmetSweater":"gray"
|-"garmetTshirt":"pink"
|-"postedBy":"user789"
我在Firebase中有幾個頂級節點,它們下面也有子節點。子節點內部是鍵和值。我想將每個topLevelNode (RalphLauren,Nike)
分隔成一個包含子節點(apparelTops, apparelBottoms)
的數組,然後將它們放入它們自己的數組中。Swift3 iOS -Firebase如何將節點數據分成不同的數組和字典
我將如何實現這樣的事情
var nameBrandNodes = [String]()
var apparelNodes = [[String]]()
var garmetNodes = [[String:Any]]()
nameBrandNodes = [RaplhLaurn, Nike]
apparelNodes = [[apparelTops, apparelBottoms], [apparelTops, apparelBottoms]]
garmetNodes = [["postedBy":"user123"], ["garmetSweater":"white"],["garmetTshirt":"blue"],["garmetShorts":"tan"], ["garmetJeans":"blue"], ["postedBy":"user789"], ["garmetSweater":"gray"], ["garmetTshirt":"pink"]]
//**EDIT** Jay's answer is CORRECT. I forgot to add this and added it after he answered
var nameBrandArrayOfDict = [[String:[String]]]
nameBrandArrayOfDict = [[nameBrandRalphLauren:[apparelTops,apparelBottoms], [[nameBrandNike:[apparelTops,apparelBottoms]]
//this is only necessary because sometimes there won't be an apparelBottomsNode or apparelTopsNode for e.g.
nameBrandArrayOfDict = [[nameBrandRalphLauren:[apparelTops], [[nameBrandNike:[apparelBottoms]]
下面是代碼:
let rootRef = Database.database().reference()
var nameBrandNodes = [String]()
var apparelNodes = [[String]]()
var garmetNodes = [[String:Any]]()
let clothingRef = rootRef.child("clothing")
clothingRef?.observe(.childAdded, with: {
(snapshot) in
//nameBrandNodes now contains RalphLauren and Nike
self.nameBrandNodes.append(snapshot.key)
for nameBrand in self.nameBrandNodes{
let apparel = rootRef.child("clothing").child("nameBrand")
apparel.observeSingleEvent(of: .value, with: {
(snapshot) in
for child in snapshot.children {
//what should I do in here?
}
}
我最終的結果是我使用的是垂直的tableView和水平collectionsView。我將列出tableView中的nameBrands,collectionView中的服裝以及collectionViews單元內的服裝項目。我知道如何將所有東西放入tableView和collectionView中,一旦它分離出來,我遇到的問題就是把所有東西都分離到不同的數組中。
感謝幫助!自昨天晚上以來,我一直困擾着這個問題。集中並弄清楚這一點很困難。我不知道我可以拍攝快照:)。我將通過此代碼工作,將其應用於我正在使用的代碼並回復給您。再次感謝!!! –
真棒問題,所以我upvoted它!如果答案有幫助,請務必接受它,以便它可以幫助其他人。 – Jay
這是一個了不起的答案。我會100%投票。給我幾個小時,我找到了你 –