Firebase查询慢代码执行:追加到表

时间:2017-10-23 06:36:07

标签: swift firebase firebase-realtime-database

我希望能够帮助我优化代码。我是新手,所以请善待。

目前它可以正常工作,但它使用相当长的时间(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

1 个答案:

答案 0 :(得分:1)

我不确定,将所有12 000件物品存放在手机上是个好主意。

对您来说可能是一个很好的解决方案:

您可以将此lib用于:

(实施例)

1)加载100行数据

2)滚动到结尾

3)再做100行的负载。

希望有所帮助