简体   繁体   English

Stream for 循环不返回每个结果 - Flutter

[英]Stream with for loop not returning every result - Flutter

I'm trying to use a Stream with a loop inside a StreamBuilder , but I'm only getting the first result.我正在尝试在Stream中使用带有循环的StreamBuilder ,但我只得到第一个结果。 I'm using this structure because I need to loop through an array of Items and get only the ones that contain that certain document in Firebase. Could someone please help me figure this out?我正在使用这个结构,因为我需要遍历一个项目数组,并只获取包含 Firebase 中特定文档的项目。有人可以帮我解决这个问题吗? This is my Stream with the nested loop:这是我的带有嵌套循环的Stream

Stream getProductModels(list) {
    var stream;
    for(var i = 0; i < list.length; i++) {
      stream = databaseReference
          .collection('XXXX')
          .where('XXXX', isEqualTo: list[i])
          .snapshots();
    }
    return stream;
  }

Actually you need to merge several stream s into one stream .实际上,您需要将多个stream合并为一个stream There is a Flutter SDK for this.为此有一个 Flutter SDK。

https://pub.dev/packages/rxdart https://pub.dev/packages/rxdart

You can use MergeStream or ZipStream .您可以使用MergeStreamZipStream

Hope this is helpful for you.希望这对你有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM