'Flutter - How to show ArrayList items pulled from Firebase Firestore with ListTile?

I have a build on Firebase Firestore like this:

enter code here

In the structure here, there are 2 ArrayLists. I want to display what will be done from 2 ArrayLists as ListTile.


I tried a code like this:

Expanded(
  child: StreamBuilder <QuerySnapshot>(
    stream: FirebaseFirestore.instance.collection("users").doc(FirebaseAuth.instance.currentUser.uid).collection("yapilacaklar").snapshots(),
    builder: (context, snapshot) {
      if (!snapshot.hasData) return LinearProgressIndicator();
      return Expanded(
        child: _buildList(snapshot.data),
      );
    },
  )
),

Widget _buildList(QuerySnapshot snapshot) {
  return ListView.builder(
    itemCount: snapshot.docs.length,
    itemBuilder: (context, index) {
      final doc = snapshot.docs[index];
      return ListTile(
        title: Text(doc["yapilacaklar"].toString()),
      );
    },
  );
}

These codes I tried do not give an error, but they do not show in any Widget. How can I do what I want? Thanks in advance for the help.



Solution 1:[1]

I believe the issue is the '.collection("yapilacaklar")'. It will try to find a collection with the id "yapilacaklar" and your user doc doesn't have any collections. Yapilacaklar, in this case, is a field in the document. Try getting the snapshots of the actual document and then creating a ListView from the array in the yapilacaklar field.

The flutterfire documentation is very helpful for reading firestore data: https://firebase.flutter.dev/docs/firestore/usage/#read-data

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Partin23