2017-01-29 12 views
0

Android用Firebaseデータベースを使用していて、スピードの問題があります。多くのカスタムオブジェクトを取得する場合、時間がかかります(それぞれの場合、1/2〜1秒など)。私はFBに保存したPollオブジェクトの束をロードしています。Android用Firebaseデータベースの高速読み込み

pollRef = rootRef.child(getString(R.string.poll_ref)).child(myPollIds.get(polls.size())); 

     pollRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       if (isAdded()) { 
        Poll poll = dataSnapshot.getValue(Poll.class); 

私が使用する必要が世論調査の特定の部分をダウンロードし、個別にロードするために、今しようとしています:ここで

は、私は現在、すべての投票のためにそれをやっている方法の例です。それはかなり複雑になっています。データベースからオブジェクトの一部だけを効率的に取得するより良い方法はありますか?

たとえば、オブジェクトの強調表示された部分のみが必要です。 enter image description here

ありがとうございます! :)

答えて

2

Firebase Realtime Databaseでは、望むような個々の属性をチェリーピックアップすることはできません。より大きな構造からデータのスライスのみを取得する最も効率的な方法は、すべての関連ビットを完全な別の構造にコピーし、代わりに他の構造を要求することです。このような重複は、最適化されたNoSQLデータベースにとって典型的なものです。データは通常、アプリで一般的な特定のクエリを最適化するのに必要な回数だけコピーされます。これの欠点は、コピーした値の1つを更新するときに、それを生きることができる他のすべての場所にコピーすることに注意する必要があることです。

このデータ編成戦略の名前はdenormalizationです。

関連する問題