title: How to call await correctly?
body: <p>I'm new to Flutter and Dart. I have a following code:</p>
  
  <pre><code>class ItemRepository {
  
    final Firestore _firestore = Firestore.instance;
  
    Future&lt;List&lt;Item&gt;&gt; loadItems() async {
      List&lt;Item&gt; itemList = [];
      _firestore.collection('items').snapshots().listen((data) {
        data.documents.forEach((doc){
          print("------- KODE: ${doc['kode']}");
          itemList.add(Item(doc['kode'], doc['name']));
        });
      });
      return itemList;
    }
  }
  </code></pre>
  
  <p>When I call my <code>loadItems</code> with following code:</p>
  
  <pre><code>Stream&lt;ItemState&gt; _mapLoadItemsToState() async* {
      try {
        final data = await this.repo.loadItems();
        print('-------------------------------');
        print(data.length);
      } catch(e) {
        print(e.toString());
      }
    }
  </code></pre>
  
  <p>It's not WAIT to data return from firebase. I added <code>await</code> to <code>_firestore.collection('items').snapshots()</code> but no luck.</p>
  
  <p>Any idea?
  Thank for any advice. Sorry for poor English.</p>