Home > front end >  Problem while reading document from firestrore in flutter
Problem while reading document from firestrore in flutter

Time:08-24

I am new to Firebase I want to read all data of document here is how i am trying to read

This is my function to get data.

Future<List<AgencyModel>> getAgencyData() async {
   List<AgencyModel> agencyListModel = [];
    try {
      agencyListModel =  await _db.collection('colelctionName')
        .doc('myDoc')
        .snapshots()
        .map((doc)=> AgencyModel.fromJson(doc.data()!)).toList();
        print('List : ${agencyListModel.length}');
      return agencyListModel;
    } catch (e) {
      debugPrint('Exception : $e');
      rethrow;
    }
  }

This is how i am calling the above function

getAgencyDetails()  async {
   List<AgencyModel> data = await  fireStoreService.getAgencyData();
    print('Data : ${data.first}');}

and this is my models class fromjson function

 factory AgencyModel.fromJson(Map<String, dynamic> json) {
  return AgencyModel(
    agencyName: json['agencyName'],
    agencyContact: json['agencyContact'],
    agencyAddress: json['agencyAddress'],
    cnic: json['cnic'],
    agencyContactDetails: json['agencyContactDetails'],
    certificatesUrl: json['certificatesUrl'],
    locationUrl: json['locationUrl'],
    earning: json['earning'],
    processing: json['processing'],
    onHold: json['onHold']);}

I am not getting any error or exception, Also these two print statements does not work not display anything not even the Strings List : and Data : i.e

print('List : ${agencyListModel.length}');
print('Data : ${data.first}');}

CodePudding user response:

UPDATE: According to the documentation: https://firebase.google.com/docs/firestore/query-data/get-data#dart_1

It is necessary to distinguish whether you want to retrieve the data only once or listen to changes over the document in real time.

It seems to me like you want to accomplish 1. case that you only want to retrieve data once. In that case. You should change:

agencyListModel = await _db.collection('collectionName')
                           .doc('myDoc')
                           .snapshots()


agencyListModel = await _db.collection('collectionName')
                           .doc('myDoc')
                           .get()
  • Related