【问题标题】:How to get data from firebase sub collection?如何从 firebase 子集合中获取数据?
【发布时间】:2021-07-23 18:18:45
【问题描述】:

我正在尝试从 firebase 获取数据,但我有点挣扎。我有这个视频集合,我在其中保存视频 ID,并且每个视频都有 documetnfield 以及一个名为 user votes 的子集合。在我保存用户从 ratingbarindicator 投票的那一边 这是如何收集看起来

所以我想要的是用户投票子集合的每个文档,然后是每个评级字段。 但是我该怎么做呢?我想要的是一起计算希望任何人都可以提供帮助

【问题讨论】:

标签: firebase flutter dart google-cloud-firestore


【解决方案1】:

要从具有给定名称的所有(子)集合中读取数据,您可以use a collection group query

FirebaseFirestore.instance
    .collectionGroup('uservotes')
    .get()
    ...

另见:

【讨论】:

  • 感谢您的提及,但我认为值得一提的是,使用此化合物,他将获得每个视频文档的子集合 userVotes 的所有文档,而不是特定视频 ID
【解决方案2】:

您可以使用 firebase 像这样浏览收集和文档:

final querySnapshot = await FirebaseFiresotre.instance.collection('videos').doc([theVideoDocumentID])
  .collection('uservotes').get();

final docs = querySnapshot.docs;

for(final doc in docs) {
  final data = doc.data();
  //handle each document here
}

【讨论】:

  • 它说方法“数据”没有为“未来”类型定义。尝试将名称更正为现有方法的名称,或定义名为“数据”的方法
  • 抱歉,忘记等待了,我正在编辑帖子
  • 在这一行中抛出错误 final docs = querySnapshot.data();它说方法 'data' 没有为类型 'Future' 定义。尝试将名称更正为现有方法的名称,或定义名为“数据”的方法
  • 查询前有没有加await关键字?
  • 是的,对不起,它说方法“数据”没有为“QuerySnapshot”类型定义。尝试将名称更正为现有方法的名称,或定义名为“数据”的方法。
猜你喜欢
  • 2021-07-25
  • 2021-03-21
  • 2021-06-01
  • 2018-03-24
  • 2020-11-26
  • 2021-10-31
  • 2019-07-16
  • 2021-03-06
  • 1970-01-01
相关资源
最近更新 更多