【问题标题】:I tried to get the documents from cloud firestore but I am unable, due to "The getter 'documents' isn't defined for the type 'QuerySnapshot'我试图从 cloud firestore 获取文档,但我无法,因为“没有为类型 'QuerySnapshot' 定义 getter 'documents'
【发布时间】:2021-03-23 11:26:41
【问题描述】:
addData(){
    Map<String, dynamic> Demodata = {"Name": "The growing developer",
    "motto":"Let's grow and learn together"
    };

    CollectionReference collectionReference = FirebaseFirestore.instance.collection('Patients');
    collectionReference.add(Demodata);
  }
  FectchData(){
    CollectionReference collectionReference = FirebaseFirestore.instance.collection('Patients');
    collectionReference.snapshots().listen((snapshot) {

      List documents;
      setState(() {
        documents = snapshot.**documents**;<---- the word 'document' is uderlined 
                                                 by red color line
      });
    });
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Create a new record"),
        centerTitle: true,
      ),

      body: Center(
        child: Column(
          children: <Widget>[
            ElevatedButton(onPressed: FectchData
                , child: Text(
                  "Patient details",
                )),
            ElevatedButton(onPressed: (){

            }, child: Text(
              "Contact Details",
            )),
            ElevatedButton(onPressed: (){

            }, child: Text(
              "Allergies/Adverse drug reaction",
            )),ElevatedButton(onPressed: (){

            }, child: Text(
              "Immunisation Status",
            )),
            ElevatedButton(onPressed: (){}, child:
            Text(
              "Pregnancy details",
            )),

            ElevatedButton(onPressed: (){}, child:
            Text(
              "BreastFeeding details",
            )),
            ElevatedButton(onPressed: (){}, child:
            Text(
              "Social History details",
            )),
            ElevatedButton(onPressed: (){}, child:
            Text(
              "Past Medical History",
            )),
            ElevatedButton(onPressed: (){}, child:
            Text(
              "Medications and Supplements",
            )),

          ],
        ),
      ),
    );
  }
}

【问题讨论】:

    标签: flutter google-cloud-firestore


    【解决方案1】:

    要从 snapshots() 获取文档列表,您需要调用 data docs

        snapshot.data.docs
    

    请注意,您没有处理错误和连接状态,并且您的代码容易出错。你可以在documentation阅读更多内容。

    【讨论】:

      【解决方案2】:

      我建议您使用StreamBuilder 以便更轻松地处理流的状态。你可以这样尝试:

      StreamBuilder<QuerySnapshot>(
        stream: collectionReference.snapshots(),
        builder: (context, snapshot) {
          if (!snashot.hasData) {
            // Do something...
          }
          var _documents = snapshot.data.docs;
          return Center(
            child: Column(
              children: <Widget>[
                ElevatedButton(onPressed: (){}
                    , child: Text(
                      "Patient details",
                    )),
                ElevatedButton(onPressed: (){
      
                }, child: Text(
                  "Contact Details",
                )),
                ElevatedButton(onPressed: (){
      
                }, child: Text(
                  "Allergies/Adverse drug reaction",
                )),ElevatedButton(onPressed: (){
      
                }, child: Text(
                  "Immunisation Status",
                )),
                ElevatedButton(onPressed: (){}, child:
                Text(
                  "Pregnancy details",
                )),
      
                ElevatedButton(onPressed: (){}, child:
                Text(
                  "BreastFeeding details",
                )),
                ElevatedButton(onPressed: (){}, child:
                Text(
                  "Social History details",
                )),
                ElevatedButton(onPressed: (){}, child:
                Text(
                  "Past Medical History",
                )),
                ElevatedButton(onPressed: (){}, child:
                Text(
                  "Medications and Supplements",
                )),
              ],
            ),
          );
        },
      ),
      

      关于StreamBuilderhere

      【讨论】:

        猜你喜欢
        • 2021-11-19
        • 2021-05-18
        • 2020-10-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-18
        • 1970-01-01
        • 2021-11-22
        • 2020-11-23
        相关资源
        最近更新 更多