【问题标题】:Flutter Convert from QuerySnapshot to a Future <List<Map<dynamic, dynamic>>>Flutter 从 QuerySnapshot 转换为 Future <List<Map<dynamic, dynamic>>>
【发布时间】:2018-12-01 11:25:40
【问题描述】:

如何将 QuerySnapshot 作为 Future 返回 >> ?

代码sn-p:

Future <List<Map<dynamic, dynamic>>>() {
List<Map<dynamic,dynamic>> list;
.....

.....
QuerySnapshot collectionSnapshot = await collectionRef.getDocuments();

list = collectionSnapshot.documents;  <--- ERROR
return list;

}

我认为我需要使用 Map of 但无法绕过它来工作。

【问题讨论】:

    标签: firebase dictionary dart google-cloud-firestore flutter


    【解决方案1】:

    collectionSnapshot.documents 返回 List 而不是 List 类型,您需要将 Documentsnapshots 列表转换为 List&lt;Map&lt;dynamic, dynamic&gt;&gt;。 我是这样的:

    Future <List<Map<dynamic, dynamic>>> getCollection() async{
    List<DocumentSnapshot> templist;
    List<Map<dynamic, dynamic>> list = new List();
    CollectionReference collectionRef = Firestore.instance.collection("path");
    QuerySnapshot collectionSnapshot = await collectionRef.getDocuments();
    
    templist = collectionSnapshot.documents; // <--- ERROR
    
    list = templist.map((DocumentSnapshot docSnapshot){
      return docSnapshot.data;
    }).toList();
    
    return list;
    }  
    

    【讨论】:

      【解决方案2】:

      加纳帕特的回答对我来说是一些小的改动。

      Future <List<Map<dynamic, dynamic>>> getCollection() async{
      List<DocumentSnapshot> templist;
      List<Map<dynamic, dynamic>> list = new List();
      CollectionReference collectionRef = Firestore.instance.collection("path");
      QuerySnapshot collectionSnapshot = await collectionRef.get(); // <--- This method is now get().
      
      templist = collectionSnapshot.documents; // <--- ERROR
      
      list = templist.map((DocumentSnapshot docSnapshot){
        return docSnapshot.data() as Map<Dynamic,Dynamic>; // <--- Typecast this.
      }).toList();
      
       
      
      return list;
      }  
      

      【讨论】:

        猜你喜欢
        • 2021-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-17
        • 2021-03-27
        • 2021-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多