2017-02-16 64 views
0

Я пытаюсь получить объект в структуры со следующим FirbaseUI FUNC:FirebaseUI скор 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 для сопоставления данных в местоположении. Это НЕ работает:

let promotion = PromotionDataModelFirebase(snapshot: snapshot) 

Как я могу получить это в структуры? Любая помощь приветствуется!

ответ

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)