Firebase,从大量数据中查询特定键
Firebase, query specific keys from a large set of data
非常感谢任何帮助。非常感谢您的宝贵时间。
假设,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
存储在 favArticles
节点下的 Users
个人资料中。由于文章下包含大量数据,因此User
个人资料下仅存储文章的key
和name
。
"Users" : {
"ZtlIQ2d1qJT1XpmHuGxwFSwaiEy2" : {
"emailId" : "vs@gmail.com",
"favArticles" : {
"article1Key" : {
"name" : "article1"
},
"article7Key" : {
"name" : "article7"
},
"article4Key" : {
"name" : "article4"
}
},
"firstName" : "Vimala",
"image" : "default",
"lastName" : "Sridhar"
}
}
假设用户喜欢了 1000 篇文章中的大约 50 篇。现在如果我想在 RecyclerView 中显示用户最喜欢的文章,我应该如何编写查询以从文章列表中选择特定的文章?
由于您已经为每个用户保留了收藏夹列表,您只需:
- 加载收藏夹列表
- 遍历它
- 为每个加载参考文章
如果您担心此 loop-and-load 的性能:Firebase 通过同一连接加载第 3 步中的所有文章,因此请求是流水线式的。对于合理数量的文章,这实际上是相当快的。有关更多详细信息,请在此处查看我的回答:Speed up fetching posts for my social network app by using query instead of observing a single event repeatedly
非常感谢任何帮助。非常感谢您的宝贵时间。
假设,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
存储在 favArticles
节点下的 Users
个人资料中。由于文章下包含大量数据,因此User
个人资料下仅存储文章的key
和name
。
"Users" : {
"ZtlIQ2d1qJT1XpmHuGxwFSwaiEy2" : {
"emailId" : "vs@gmail.com",
"favArticles" : {
"article1Key" : {
"name" : "article1"
},
"article7Key" : {
"name" : "article7"
},
"article4Key" : {
"name" : "article4"
}
},
"firstName" : "Vimala",
"image" : "default",
"lastName" : "Sridhar"
}
}
假设用户喜欢了 1000 篇文章中的大约 50 篇。现在如果我想在 RecyclerView 中显示用户最喜欢的文章,我应该如何编写查询以从文章列表中选择特定的文章?
由于您已经为每个用户保留了收藏夹列表,您只需:
- 加载收藏夹列表
- 遍历它
- 为每个加载参考文章
如果您担心此 loop-and-load 的性能:Firebase 通过同一连接加载第 3 步中的所有文章,因此请求是流水线式的。对于合理数量的文章,这实际上是相当快的。有关更多详细信息,请在此处查看我的回答:Speed up fetching posts for my social network app by using query instead of observing a single event repeatedly