title: How to get Data from map objects Firebase (Flutter)
body: <p>I have a small problem whit the class maps... I'm using firecloud (NoSql DB) for my flutter app , but i have a lot of problems retriving my data!!</p>
  
  <p>This is my meeting class where i contain all the data , I can get all the data but i some problems with the List _Tags , and the List _Users. How can i map and get correctly this data????</p>
  
  <pre><code>class Meeting{
    userIcon newUserIcon;
    User newUser;
    String newtag;
  
    String _ID;
    String _Name;
    String _Date;
    String _Position;
    String _Image;
    String _Hour;
    List&lt;String&gt; _Tags;
    List&lt;userIcon&gt; _Users;
    String _Description;
    User _Manager;
    bool _Favorite;
  
  
    Meeting(this._ID,this._Name,this._Date,this._Position,this._Image,this._Hour,this._Tags,this._Users,this._Description,this._Manager,this._Favorite);
  
    Meeting.fromMap(Map&lt;String, dynamic&gt; map){
      this._ID = map['ID'];
      this._Name = map['nome'];
      this._Date=  map['data'];
      this._Position=  map['posizione'];
      this._Image=  map['immagine'];
      this._Hour= map['data'];
      this._Tags= map['tags'].cast&lt;String&gt;(); //creo la lista di scringhe
      this._Users= map['id_partecipanti'].forEach((element){
        newUserIcon = new userIcon.fromMap(element);
      });
      this._Description = map['descrizione'];
      this._Manager = new User.fromMap(map['id_organizzatore']);
      this._Favorite = map['preferito'];
  
  
    }
  
  
  
    Meeting.map(dynamic obj) {
      this._ID = obj['ID'];
      this._Name = obj['Name'];
      this._Date= obj['Date'];
      this._Position= obj['Position'];
      this._Image= obj['Image'];
      this._Hour= obj['Hour'];
      this._Tags= obj['Tags'];
      this._Users=  obj['Users'];
      this._Description = obj['Description'];
      this._Manager = obj['Manager'];
      this._Favorite = obj['Favorite'];
  
  
    }
  
    String get ID =&gt; this._ID;
    String get Name =&gt; _Name;
    String get Date =&gt; _Date;
    String get Position=&gt; _Position;
    String get Image =&gt; _Image;
    String get Hour =&gt; _Hour;
    List&lt;String&gt; get Tags =&gt; _Tags;
    List&lt;userIcon&gt; get Users=&gt; _Users;
    String get Description =&gt; _Description;
    User get Manager =&gt; _Manager;
    bool get Favorite =&gt; _Favorite;
  
    Map&lt;String, dynamic&gt; toMap() {
      var map =new  Map&lt;String, dynamic&gt;();
  
      if(ID != null){
        map["ID"] = ID;
      }
      map["ID"] = ID;
      map["Name"] = Name;
      map["Date"] = Date;
      map["Position"] = Position;
      map["Image"] = Image;
      map["Hour"] = Hour;
      map["Tags"] = Tags;
      map["Users"] = Users;
      map["Description"] = Description;
      map["Manager"] = Manager;
      map["Favorite"] = Favorite;
  
  
      return map;
    }
  
  
  
  
  
  
  }
  </code></pre>
  
  <p>This is the userIcon class </p>
  
  <pre><code>    class userIcon{
    String _ID;
    String _immagine;
    int _eta;
  
    userIcon(this._ID,this._immagine,this._eta);
  
      userIcon.map(dynamic obj) {
      this._ID = obj['ID'];
      this._immagine = obj['immagine'];
      this._eta = obj['eta'];
  
  
    }
  
    String get ID =&gt; this._ID;
    String get immagine =&gt; this._immagine;
    int get eta =&gt; this._eta;
  
    Map&lt;String, dynamic&gt; toMap() {
      var map =new  Map&lt;String, dynamic&gt;();
      if(ID != null){
        map["ID"] = ID;
      }
      map["immagine"] = immagine;
      map["eta"] = eta;
  
  
      return map;
    }
  
     userIcon.fromMap(Map&lt;String, dynamic&gt; map){
      this._ID = map['ID'];
      this._immagine=map["immagine"];
      this._eta=map["eta"];
  
  
    }
  
  }
  </code></pre>
  
  <p>This is the Firecloud Query /map :</p>
  
  <pre><code>Future&lt;List&lt;Meeting&gt;&gt; getData() async {
    List&lt;Meeting&gt; _incontri = [];
    List&lt;DocumentSnapshot&gt; _temp =[];
  
    Query q = databaseReference.collection("incontri").limit(10);
    QuerySnapshot querySnapshot = await q.getDocuments();  
    _temp = querySnapshot.documents;
  
    _incontri =  _temp.map(
            (doc) =&gt; Meeting.fromMap(doc.data)).toList();
  
    return _incontri;
  }
  </code></pre>
  
  <p>I can't find any documentation about this or any other post for my problem ... someone can help me :) ?  If you know some articles where i can read about maps and learn something i'll appreciate !!
  Thanks!</p>