Rendering a ListView with StreamBuilder final Stream < List < int >> _posts = Stream < List < int >>. fromIterable ( < List < int >>[ List < int >. generate ( 10 , ( int i ) => i ), ], ); That List of 10 items is used as the first value in a new Stream . From the subscription side of the Stream , there will be a single event with data that is a List of 10 items. I'm going with this pattern because Firestore will have snapshots with multiple documents. The PostsList build method needs to be updated to consume the Stream and use a StreamBuilder : @override Widget build ( BuildContext context ) { return StreamBuilder < List < int >>( stream: posts , builder: ( BuildContext context , AsyncSnapshot < List < int >> snapshot ) { if ( snapshot . hasError ) { return Text ( 'Error: ${snapshot.error} ' ); } switch ( snapshot...