title: Flutter load ListView item async
body: <p>How can a ListView item refresh after each async task?</p>
  
  <p>I have 2 collections on firebase that needs to be accessed and please, if there's another way please advise since I'm new in Firebase and Flutter.</p>
  
  <p>My <code>users</code> have a collection inside called <code>favorites</code> with the <code>userID</code> field (same of the document id) and I load the ListView with all the users data BUT only with the ones that match that IDs (to avoid loading for example 1000 users for no reason = $$$).</p>
  
  <p>According my code and my tests on the Run window I get the value of each user but my ListView on the app shows blank. I tried to place a setstate but the app refreshs non-stop.</p>
  
  <p>I tried to create a separated function but simply I can't get it returning the list of document snapshots.</p>
  
  <p>Thank you</p>
  
  <pre><code>FutureBuilder(
                future: Firestore.instance.collection('users').document(id).collection('favorites').getDocuments(),
                builder: (context, snapshot) {
                  if (snapshot.hasData) {
                    List&lt;DocumentSnapshot&gt; userDocs = [];
                    snapshot.data.documents.forEach((doc) async {
                      await Firestore.instance.collection('users').document(doc.documentID).get().then((user) {
                        userDocs.add(user);
                      });
                    });
                    return ListView(
                      children: userDocs.map((document) {
                        return buildItem(context, document);
                      }).toList(),
                    );
                  }
                },
              ),
  </code></pre>