title: Flutter Future builder, future gets called multiple times
body: <p><strong>Problem:</strong> I have a future builder inside a <strong>Column</strong> which is inside a <strong>SingleChildScrollView</strong><br />
  It calls its future multiple times(Infinite).</p>
  <hr />
  <pre><code> FutureBuilder(
                      future: ProductLoaderUtil.getSimilarProducts(
                          context, widget.productItem.productCategoryId),
                      builder: (context, val) {
                        if (val.hasData &amp;&amp; (!val.hasError))
                          return ListProductHorizontal(
                            productItemsHorizontal: val.data,
                            flag: false,
                          );
                        else
                          return Container(
                            height: _height * 0.06,
                            color: FakeWhite,
                          );
                      },
                    ),
  </code></pre>
  <hr />
  <p>The function getting called is this,</p>
  <pre><code>         static Future&lt;List&lt;ProductItem&gt;&gt; getSimilarProducts(
                  BuildContext context, String category) async {
                  List&lt;ProductItem&gt; products = [];
                  String categoryName = categories[0];
    
                  debugPrint(categoryName + &quot; --- &quot;);
                  await Firestore.instance
                      .collection(&quot;GlobalDataBase&quot;)
                      .document(categoryName)
                      .collection(&quot;ITEMS&quot;)
                      .limit(4)
                      .getDocuments()
                      .then((value) {
                    value.documents.forEach((element) {
              //        debugPrint(element.data.toString());
                      products.add(ProductItem.fromJson(element.data));
                    });
                  });
                  return products;
                }
  </code></pre>