Flutter Firebase 获取特定多个文档的子集合数据

Posted

技术标签:

【中文标题】Flutter Firebase 获取特定多个文档的子集合数据【英文标题】:Flutter Firebase Getting SubCollection Datas of Specific Multiple Documents 【发布时间】:2022-01-19 01:09:45 【问题描述】:

这是我的 Firebase 文档表单;

我有 Users 集合,并且我在 Users 集合中有不同 documentID 的用户。

每个用户有 2 个值(名称和文档 ID)并拥有 Posts 集合。

Posts 集合中也有带有 name 值的 post 文档。

我正在寻找适合此数据库表单的多文档数据获取方法,因为它是在应用程序中关注用户并查看他们关注的用户帖子的选项。

如果我们举一个关于这个数据库的例子;

例如,我正在尝试获取用户“9L0kdExw5Q1HvUnrXrSE”、“rdzfk7U41IQCfxuv1Gp0”的帖子数据。

我该怎么做。

我尝试了许多不同的方法,但都没有奏效。这几天我一直在为此苦苦挣扎。

这必须有一个简单的方法,那些用 Flutter 制作社交媒体应用程序的人是如何做到的。

我希望它是不言自明的并且有一个解决方案。

【问题讨论】:

我解决了我的问题,你可以从这个链接查看; https://***.com/questions/70407597/flutter-firebase-merge-streams-list-with-combinelateststream-and-display-on-stre/70433919#70433919 【参考方案1】:

首先,我建议在帖子文档中添加“作者”的用户ID

其次,使用 collectionGroup 查询(更多的是 here)。然后,您可以对查询使用“in”子句(请参阅this)

但是请注意,“in”子句只允许最多 10 个比较值。

【讨论】:

我第一次做申请的时候是用你说的方法,后来出现whereIN查询只能查询10个值的错误,我只好另找办法了。 您还有其他建议或如何无限制地进行 whereIN 查询? 嗨@Rkdio,请查看blog,看看是否有帮助。 建议我查询多次,然后在我的应用本地合并,但是他没有给出这个例子,我也不明白怎么做。 我解决了我的问题并上传了答案,如果有人好奇,你可以看看。

以上是关于Flutter Firebase 获取特定多个文档的子集合数据的主要内容,如果未能解决你的问题,请参考以下文章

Flutter & Firebase - 从文档中获取特定字段

Flutter Firebase - 从文档中获取特定字段

Flutter & Firebase 将 10 多个 Firebase 文档放入 Stream<List<Map>>

从登录用户 Flutter/Firebase 获取文档列表

具有多个firebase请求的flutter bloc cubit最佳实践

Flutter Firebase - 搜索包含字符串的文档