2016-12-04 20 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 keys хранятся в Users профиле под favArticles узел. Поскольку в статье содержится огромное количество данных, только key и name статьи хранятся в профиле User.

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

Допустим, что пользователь понравился около 50 статей достигло 1000. Теперь, если я хочу, чтобы отобразить пользователей любимые статьи в RecyclerView, как я должен написать мой запрос, чтобы выбрать конкретные статьи из этой статьи список?

+0

Мой план состоит в том, чтобы поместить ключ 'favArticles' в arrayList. Для каждого ключа в arrayList присоедините значениеEvenListener и получите DataSnapShot статьи и отображения. Я не знаю, правильно ли это для достижения моей цели. Кроме того, я не могу использовать RecyclerView. –

ответ

2

Поскольку вы уже держите список избранных для каждого пользователя, вы бы просто:

  1. нагрузки, список избранных
  2. итерации над ним
  3. нагрузка в статье ссылки для каждого

Если вы беспокоитесь о производительности этого цикла и нагрузки: Firebase загружает все статьи на шаге 3 по одному и тому же соединению, поэтому запросы конвейерны. Для разумного количества статей это довольно быстро. См. Мой ответ здесь для получения более подробной информации: Speed up fetching posts for my social network app by using query instead of observing a single event repeatedly

 Смежные вопросы

  • Нет связанных вопросов^_^