How to query multiple table in Firebase database

Hello,

I'm try to get data from multiple tables with relation in Firebase database. I use custom action like that.

Future<List<ProgramStruct>>? getAllDataFromProgram() async {
  final programs =
      await FirebaseFirestore.instance.collection('sfa_program').get();

  var p = await programs.docs.map((p) async {
    final days = await FirebaseFirestore.instance
        .collection('sfa_day')
        .where('id', isEqualTo: p.id)
        .get();

    return days.docs.map((j) async {
      return await FirebaseFirestore.instance
          .collectionGroup('sfa_set')
          .where('id', isEqualTo: j.id)
          .get();
    });
  });

  List<ProgramStruct> listOfStruct = [];
  for (var item in p) {
    listOfStruct.add(ProgramStruct.fromMap(item));
  }
  return listOfStruct;
}

Anyone to help me to validate my query. I have some errors with return type.

Thanks
William

2