【发布时间】:2019-05-24 10:25:41
【问题描述】:
您好,我很难在 Firebase 块中获取数组的值
我的代码涉及计算订购的多个食品的数量 (requestFoodItemArray[i]) 并将它们附加到一个数组 (requestFoodNumberArray)。我能够让它成功运行,但是当我尝试在除了 observe() 块之外的任何其他地方访问它时,存储在 requestFoodNumberArray 中的值将会消失。
如何“延长”存储在该特定数组中的数据的寿命?
谢谢!
override func viewDidLoad() {
super.viewDidLoad()
populateCharts(completion: { requestNumberArray in
print(requestNumberArray)
})
}
func populateCharts (completion: @escaping (_ requestNumberArray: Array<Double>) -> Void) {
for i in 0 ..< requestFoodItemArray.count {
refRequest.child("\(requestFoodItemArray[i])").observe(.value, with: { snapshot in
var newItem: [FoodRequestItemList] = []
for child in snapshot.children {
if let snapshot = child as? DataSnapshot,
let requestItemList = FoodRequestItemList(snapshot: snapshot) {
newItem.append(requestItemList)
}
}
self.item = newItem
self.requestedItemArray = self.item.map({ $0.key })
var arrayCount : Double = Double(self.requestedItemArray.count)
var requestArray : [Double] = []
requestArray.append(arrayCount)
completion(requestArray)
}, withCancel: nil)
}
【问题讨论】:
标签: swift firebase firebase-realtime-database