处理Firebase数据库中大量数据的最佳方法

时间:2019-04-29 10:52:08

标签: swift database performance

我有以下代码可从Firebase数据库获取数据:

    func fetchVinylsData(){
    guard let currentUID = Auth.auth().currentUser?.uid else { return }

    SVProgressHUD.show()
    self.vinyls = [Vinyl]()
    dbRef.child("vinyls").child(currentUID).observe(.childAdded) { (snapshot) in
        guard let dictionary = snapshot.value as? Dictionary<String,AnyObject> else { return }
        let vinyl = Vinyl(dictionary: dictionary)

        self.vinyls.append(vinyl)
        self.vinyls.sort(by: { (vinyl1, vinyl2) -> Bool in
            if vinyl1.artist < vinyl2.artist {
                return true
            } else if vinyl1.artist == vinyl2.artist {
                return vinyl1.title < vinyl2.title
            } else {
                return false
            }
        })
        DispatchQueue.main.async {
            self.tableView.reloadData()
            self.navigationItem.title = "List of Vinyls(\(self.vinyls.count))"
        }
    }
    SVProgressHUD.dismiss()
}

当我在viewDidAppear上启动我的应用时,以及当我从另一个ViewController返回主页时,以及在我从数据库中删除项目或更新项目时,都会调用它。但是,由于我在数据库中获得了很多记录(900条记录,并增加到约4.000条记录),所以我想知道什么是在Firebase中处理大量数据并迅速避免降低应用速度的最佳方法。

0 个答案:

没有答案
相关问题