2017-10-23 8 views
0

私は自分のコードを最適化する助けを得ることができたと思っていました。私は開発に新しいので、親切にしてください。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、 "他のthing1":XXXX、...、 "他のthing32":私は「XXXX

+0

あなたは、ページネーションと呼ばれるものを探しています。 – DoesData

答えて

1

確かに、それはあなたの携帯電話に12 000のすべての項目を格納することをお勧めします。

、それはあなたのために良い解決策になるかもしれませ:

あなたはこのlibを使用することができます。100行

2用(例)

1)

負荷データ)をスクロール最後まで

3)100行の別の読み込みを実行します。

希望します。

関連する問題