2016-12-04 22 views
1

何か助けてください。あなたのお時間をありがとうございました。Firebase、大きなデータセットのクエリ固有のキー

ここでは、Articlesノードの下に多数の記事があります。

"Articles" : { 
"article1Key" : { 
    "articleAuthor" : "Author", 
    "articleFavByNo" : 21, 
    "articleKey" : "Key", 
    "articleName" : "Name", 
    "articlePostedOn" : "21/07/11", 
    "articleTopic" : "Topic" 
}, 
"article2Key" : { 
    "articleAuthor" : "Author", 
    "articleFavByNo" : 21, 
    "articleKey" : "Key", 
    "articleName" : "Name", 
    "articlePostedOn" : "21/07/11", 
    "articleTopic" : "Topic" 
}, 
... 
"article10Key" : { 
    "articleAuthor" : "Author", 
    "articleFavByNo" : 21, 
    "articleKey" : "Key", 
    "articleName" : "Name", 
    "articlePostedOn" : "21/07/11", 
    "articleTopic" : "Topic" 
} 

この記事はいくつかの著者によって投稿されています。登録ユーザーは記事をブラウズして閲覧することができます。好きなarticles keysUsersというプロファイルのfavArticlesノードに格納されています。記事には膨大な量のデータが含まれているため、記事のkeynameのみがUserプロファイルの下に保存されています。

"Users" : { 
"ZtlIQ2d1qJT1XpmHuGxwFSwaiEy2" : { 
    "emailId" : "[email protected]", 
    "favArticles" : { 
    "article1Key" : { 
     "name" : "article1" 
    }, 
    "article7Key" : { 
     "name" : "article7" 
    }, 
    "article4Key" : { 
     "name" : "article4" 
    } 
    }, 
    "firstName" : "Vimala", 
    "image" : "default", 
    "lastName" : "Sridhar" 
} 
} 

どのように私は記事から特定の記事を選択する私のクエリを記述する必要があり、私はRecyclerView内のユーザーのお気に入りの記事を表示したい場合は、私たちは、ユーザが今1000のうち、いくつかの50件の記事を気に入っているとしましょうリスト?

+0

私の計画は、 'favArticles key'をarrayListに入れることです。 arrayListの各キーについて、valueEvenListenerをアタッチし、アーティクルのDataSnapShotを取得して表示します。これが私の目標を達成する正しい方法かどうかはわかりません。また、この方法では、RecyclerViewを使用できません。 –

答えて

2

すでに各ユーザのお気に入りのリストを保持するので、あなただけの思い:お気に入り

  • 反復のリスト
  • 、それ以上は各 の参照記事を読み込むこと

    1. 負荷が

    このループとロードのパフォーマンスが心配な場合、Firebaseは手順3のすべての記事を同じ接続で読み込み、リクエストがパイプライン化されるようにします。合理的な数の記事については、これは実際にはかなり速いです。詳細は私の答えをご覧ください:Speed up fetching posts for my social network app by using query instead of observing a single event repeatedly

    関連する問題