ListView 和快照 - 错误 - 错误状态:DocumentSnapshotPlatform 中不存在字段[重复]

2024-05-14

我对快照和 ListView 有一个小问题。到目前为止,它运行得很好。但自从我更新了 flutter 和 Dart 后,我​​收到了一个错误。

构建 StreamBuilder> 时抛出以下 StateError(脏,状态:_StreamBuilderBaseState, AsyncSnapshot>>#8b4ae): 错误状态:DocumentSnapshotPlatform 中不存在字段

我不明白如何解决这个问题。我检查了文档中的字段名称,没有问题。 请问您能帮我理解这一点吗?我们将不胜感激。谢谢

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';

import 'package:firebase_auth/firebase_auth.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

class ProjectsList3 extends StatefulWidget {
  ProjectsList3 ({Key key}) : super(key : key);

  @override
  _ProjectsList3State createState() => _ProjectsList3State();
}

class _ProjectsList3State extends State<ProjectsList3> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      drawer:  new MyMenu(),
      appBar: new AppBar(
        title: new Text('Projects'),
      ),
      body: Column(
        children: [
          Expanded(
            child: StreamBuilder<QuerySnapshot>(
                stream: FirebaseFirestore.instance
                    .collection('Users')
                    .doc(FirebaseAuth.instance.currentUser.uid)
                    .collection('projects')
                    .snapshots(),
                builder: (BuildContext context,
                    AsyncSnapshot<QuerySnapshot> snapshot) {
                  if(snapshot.connectionState == ConnectionState.waiting){
                    return Center(child: LinearProgressIndicator());
                  }
                  else{
                    return new ListView(
                      children: snapshot.data.docs.map((prgSnapshot){
                        return Card(
                            child: ListTile(
                              leading: CircleAvatar(

                              ),
                              title: Text(prgSnapshot['project_Name']),
                            )
                        ) ;
                      }).toList(),
                    );
                    //if (!snapshot.hasData) {
                    // return Center(
                    //   child: CircularProgressIndicator(),
                    // );
                  }
                }
            ),
          ),
        ],
      ),
      bottomNavigationBar: MyBottomAppBar(),
    );
    throw UnimplementedError();
  }
}


在此代码中:

return new ListView(
  children: snapshot.data.docs.map((prgSnapshot){
    return Card(
        child: ListTile(
          leading: CircleAvatar(

          ),
          title: Text(prgSnapshot['project_Name']),
        )
    ) ;
  }).toList(),
);

The snapshot.data is a QuerySnapshot https://pub.dev/documentation/cloud_firestore/latest/cloud_firestore/QuerySnapshot-class.html, 意思就是prgSnapshot is a DocumentSnapshot https://pub.dev/documentation/cloud_firestore/latest/cloud_firestore/DocumentSnapshot-class.html。如果您检查该文档,您会发现它没有[]访问器。

如果您想从文档的数据中获取字段,请使用prgSnapshot.data()['project_Name'] or prgSnapshot.get('project_Name').

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ListView 和快照 - 错误 - 错误状态:DocumentSnapshotPlatform 中不存在字段[重复] 的相关文章

随机推荐