title: Listview builder only different values
body: <p>I have a listview builder inside a Stream Builder, the content is gotten in a Snapshot, however, the problem I'm having is that I need to display the repeated data only once.</p>
  <p><a href="https://i.stack.imgur.com/2TEX3.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/2TEX3.png" alt="Noitifications" /></a></p>
  <p>As you see, the same person viewed a listing and send me some chats, how can I tell the Listview Builder Return, to only create the widget if the person and action is different in this example instead of 6 Eduardo Alas view your listing and 4 Eduardo Alas Wants to send you a message, I want to display only 2 rows as it is a repeated action.</p>
  <p>Here is my Code:</p>
  <pre><code>StreamBuilder(
                      stream: DatabaseMethods().getNotifications(),
                      builder: (context, snapshot) {
                        int lastdoc = 0;
                        if (snapshot.hasData) {
                          lastdoc = snapshot.data.docs.length - 1;
                        }
                        return snapshot.hasData
                            ? Expanded(
                                child: Container(
                                  color: Color(0xFFF9F7F0),
                                  child: ListView.builder(
                                      shrinkWrap: true,
                                      padding: const EdgeInsets.all(10),
                                      itemCount: snapshot.data.docs.length,
                                      reverse: false,
                                      itemBuilder: (context, index) {
  
                                        DocumentSnapshot ds =
                                            snapshot.data.docs[index];
  
                                        return NotificationInfo(
                                          id: ds.id,
                                          email: ds['email'],
                                          image: ds['image'],
                                          name: ds['name'],
                                          phone: ds['phone'],
                                          platform: ds['platform'],
                                          token: ds['token'],
                                          typeNot: ds['notification'],
                                          username: ds['username'],
                                          listingId: ds['listingId'],
                                          listingImage: ds['listingImage'],
                                          notificationId: ds.id,
                                          blockDemo: false,
                                          islast: index == lastdoc,
                                        );
                                        //}
                                      }),
                                ),
                              )
                            : Center(
                                child: RoofLoadingBar(
                                  height: 100,
                                ),
                              );
                      },
                    )
  </code></pre>
  <p>Any Ideas?</p>