Stream builder from firestore to flutter

Accessing documents using StreamBuilder in Flutter 2

StreamBuilder<QuerySnapshot>(
    stream: FirebaseFirestore.instance.collection('products').snapshots(),
    builder: (context, snapshot) {
        if (snapshot.hasData) {
        return ListView.builder(
            itemCount: snapshot.data!.docs.length,
            itemBuilder: (context, index) {
                DocumentSnapshot doc = snapshot.data!.docs[index];
                return Text(doc['name']);
            });
        } else {
        return Text("No data");
        }
    },
)

As per new changes 2021 in Firebase FireStore you can retrieve data from collection using StreamBuilder as below

final _mFirestore = FirebaseFirestore.instance;

return StreamBuilder<QuerySnapshot>(
  stream:
      _mFirestore.collection(kFirebaseCollectionName).snapshots(),
  builder: (context, snapshots) {
    if (!snapshots.hasData) {
      return Center(
        child: Text('Data not available',),
      );
    }
    final messages = snapshots.data.docs;
    List<Text> textWidgets = [];

    messages.forEach((element) {
      final messageText = element['text'];
      final messageSender = element['sender'];

      final textWidget = Text('$messageText, $messageSender');
      textWidgets.add(messageBubbleWidget);
    });
  },
);

This should work for one item

  body: new StreamBuilder(
    stream: Firestore.instance.collection("collection").snapshots(),
    builder: (context, snapshot) {
      if (!snapshot.hasData) {
        return Text(
          'No Data...',
        );
      } else { 
          <DocumentSnapshot> items = snapshot.data.documents;

          return new Lost_Card(
          headImageAssetPath : items[0]["url"]
          );
      }

If you want to create list builder from many documents use it like this

        return new ListView.builder(
            itemCount: snapshot.data.documents.length,
            itemBuilder: (context, index) {
              DocumentSnapshot ds = snapshot.data.documents[index];
              return new Lost_Card(
                headImageAssetPath : ds["url"];

);