我希望能够帮助我优化代码。我是新手,所以请善待。
目前它可以正常工作,但它使用相当长的时间(10-15秒)来加载我的应用程序中需要的第一个表视图。 首先,我认为我没有正确激活“持久性”,但我开始怀疑这是我加载数据的方式不是最理想的。
我使用的“大”(12k +项)数据集不经常更改,因此理想的解决方案是加载一次,然后监听更改。我以为这就是我在做什么,但如果是这样,我不明白为什么它这么慢?所以我现在怀疑这是我每次附加数据的方式,而不仅仅是从“本地的某个地方”读取/加载,然后从服务器监听更改?
感谢任何帮助
//read From Firebase adjusted to whiskies
func startObservingDB () {
dbRef.queryOrdered(byChild: "brand_name").observe(.value, with: { (snapshot:FIRDataSnapshot) in
var newWhisky = [WhiskyItem]()
//forloop to iterate through the snapshot
for whiskyItem in snapshot.children {
let whiskyObject = WhiskyItem(snapshot: whiskyItem as! FIRDataSnapshot)
newWhisky.append(whiskyObject)
}
//update
self.whiskies = newWhisky
print("WhiskyItem")
self.tableView.reloadData()
}) { (error: Error) in
print(error.localizedDescription)
}
}
Firebase结构:/ Results / Index / name:xxx,“other thing1”:xxxx,...,“other thing32”:xxxx
答案 0 :(得分:1)
我不确定,将所有12 000件物品存放在手机上是个好主意。
对您来说可能是一个很好的解决方案:
您可以将此lib用于:
(实施例)
1)加载100行数据
2)滚动到结尾
3)再做100行的负载。
希望有所帮助