如何在Swift的循环中将Firebase数据附加到数组?

时间:2018-12-12 00:09:40

标签: swift firebase firebase-realtime-database

到目前为止,基本上我得到的是一个同时存储“ productNames”和“ brandNames”的数组以及一个如下所示的Firebase数据库:

  • 烟草

    • UniqueID1
      • 名称:“ name1”
      • brand:“ brand1”
    • UniqueID2
      • 名称:“ name2”
      • 品牌:“品牌”

现在,我将尝试使其尽可能简单,并仅向您显示我正在努力的代码,这是这一部分: 在课堂上,我写了:

var ShopCells: [ShopCell] = []

在viewDidLoad中:

ShopCells = createArray()

然后执行此功能:

func createArray() -> [ShopCell] {
    var tempShopCells: [ShopCell] = []

    let rootRef = Database.database().reference()
    let query = rootRef.child("tobaccos").queryOrdered(byChild: "name")
    query.observeSingleEvent(of: .value) {
        (snapshot) in
        for child in snapshot.children.allObjects as! [DataSnapshot] {
            let value = child.value as? NSDictionary
            let name = value?["name"] as? String ?? ""
            let brand = value?["brand"] as? String ?? ""
            print(name)
            print(brand)
            tempShopCells.append(ShopCell(productName: name, brandName: brand))
        }
    }
    return tempShopCells
}

我想拥有的是每支烟草及其名称,品牌的阵列,以便我可以在表格视图中显示这些烟草。 但是无论我尝试什么,该数组似乎都是空的。我发现在循环之外使用硬编码的String编写... append()确实可行,但在循环内部却无法这样做,因为循环的代码行要少得多。 到底是什么问题?

0 个答案:

没有答案