Firebase 查询代码执行速度慢:附加到表中



我希望我能得到一些帮助来优化我的代码。我是开发新手,所以请善待。

目前它可以工作,但它需要相当长的时间(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 结构:/结果/索引/名称:xxx,"other thing1":xxxx,...,"other thing32":xxxx

我不确定,将所有12 000个项目存储在手机上是个好主意。

也许这对您来说是一个很好的解决方案:

您可以将此库用于:

(示例)

1) 加载 100 行的数据

2) 滚动到末尾

3) 再加载 100 行。

希望对你有帮助

最新更新