Firebase Swift异步对象创建

时间:2017-03-22 17:40:59

标签: ios swift firebase firebase-realtime-database

考虑我的数据库命名类别中的实体和categoryItems的结构如此

categories

  - categoryID

    - name

categoryItems

  - itemId
   - categoryId
   - name
   - price

显然存储了更多字段,但这只是一个例子。创建包含所有类别项作为其自己的单独对象的新类别对象的最佳方法是什么?寻找更多的一般概念而不是......

例如在Swift中,我会有像这样的对象

class Category {
  var name: String
  var items: [CategoryItem]
}

class CategoryItem {
  var name: String
  var price: Float
}

下面是我目前正在做这个的例子,但是如果有3或4个属性需要调用数据库,它似乎是一个糟糕的结构。

ref.child("categories/").observe(FIRDataEventType.value, with: { (snapshot) in
  let categories = snapshot.children
  while let category = categories.nextObject() as? FIRDataSnapshot {
      ref.child("categoryItems/").queryOrderedByValue("categoryID").queryEqualToValue((category.key)).observe(FIRDataEventType.value, with: { (snapshot) in
      let categoryItems = snapshot.children

      let category = Category()
      while let item = categoryItems.nextObject() as? FIRDataSnapshot {
          let i = categoryItem(name: item.name, price: item.price)
          category["items"].append(i)
      }
    })
  }
})

0 个答案:

没有答案