2017-02-16 37 views
0

我試圖獲取對象與以下FirbaseUI FUNC一個結構:FirebaseUI SWIFT 3 - 如何讓FUIIndexTableViewDataSource快照在結構

let indexQuery = ref.child("placePromotions").child(thisPlace.key) 

let dataRef = ref.child("promotions") 

dataSource = tableView.bind(toIndexedQuery: indexQuery, data: dataRef, delegate: self, populateCell: { (tableView, indexPath, snapshot) -> UITableViewCell in 

let cell:PromotionsCell = tableView.dequeueReusableCell(withIdentifier: "promotionsCell", for: indexPath) as! PromotionsCell 

if let snapshot = snapshot { 
     print(snapshot) 
    } 
return cell 
    }) 

當我打印快照我得到以下結果:

Snapshot: Snap (active) 1 
Snapshot: Snap (archived) 0 
Snapshot: Snap (end_date) 1487967180000 
Snapshot: Snap (logo_cache) 1487276008635 
Snapshot: Snap (long_description) lange beschrijving 
Snapshot: Snap (place_id) -Kcrn0--Lno08fZ-8l-O 
Snapshot: Snap (short_description) hallo wereld!!! 
Snapshot: Snap (stamp_price) 10 
Snapshot: Snap (stamps) 1 
Snapshot: Snap (start_date) 1487621580000 
Snapshot: Snap (title) Stan's sneeuwschep-actie 
Snapshot: Snap (-Kd7YgueVAZaXZa30qyW) { 
    active = 1; 
    archived = 0; 
    "end_date" = 1487967180000; 
    "logo_cache" = 1487276008635; 
    "long_description" = "lange beschrijving"; 
    "place_id" = "-Kcrn0--Lno08fZ-8l-O"; 
    "short_description" = "hallo wereld!!!"; 
    "stamp_price" = 10; 
    stamps = 1; 
    "start_date" = 1487621580000; 
    title = "Stan's sneeuwschep-actie"; 
} 

我已經制作了一個PromotionDataModelFirebase結構來匹配位置中的數據。 這是行不通的:

​​

我怎樣才能進入一個結構呢?任何幫助表示讚賞!

回答

0

通過添加??解決它? [:]在結構初始化

init(snapshot: FIRDataSnapshot) { 
    let value = snapshot.value as? [String:AnyObject] ?? [:] 
    active = value["active"] as? Bool ?? true 
    archived = value["archived"] as? Bool ?? true 
    end_date = value["end_date"] as? Int ?? 0 
    logo_cache = value["logo_cache"] as? Int ?? 0 
    long_description = value["long_description"] as? String ?? "" 
    place_id = value["place_id"] as? String ?? "" 
    short_description = value["short_description"] as? String ?? "" 
    stamp_price = value["stamp_price"] as? Int ?? 0 
    stamps = value["stamps"] as? Int ?? 0 
    start_date = value["start_date"] as? Int ?? 0 
    title = value["title"] as? String ?? "" 
    key = snapshot.key 
} 

現在我可以讓快照與結構:

let promotion = PromotionsDataModelFirebase(snapshot: snapshot)