Firebase 将firestore中的文档存储在列表中

Firebase 将firestore中的文档存储在列表中,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我试图从名为“Org”的集合中检索文档,并将其存储在列表中以显示在下拉菜单中,但列表返回[QueryDocumentSnapshot的实例,'QueryDocumentSnapshot'的实例],因此出现以下错误: The method 'map' was called on null. Receiver: null Tried calling: map(Closure: (dynamic) => DropdownMenuItem<dynamic>) 试试这个 @overri

我试图从名为“Org”的集合中检索文档,并将其存储在列表中以显示在下拉菜单中,但列表返回
[QueryDocumentSnapshot的实例,'QueryDocumentSnapshot'的实例]
,因此出现以下错误:

The method 'map' was called on null.
Receiver: null
Tried calling: map(Closure: (dynamic) => DropdownMenuItem<dynamic>)
试试这个

@override
  initState() {
    
    
    
  
    super.initState();
Firebase.initializeApp();
    organisation();
    
  }
以及

在函数外部声明列表

final List<DocumentSnapshot> list;

void organisation() async {
    await Firebase.initializeApp();
    QuerySnapshot querySnapshot = await FirebaseFirestore.instance.collection("Org").get();
    list = querySnapshot.docs;
    print(list);
    list.forEach((data) => print(data));
  }

最终列表;
无效组织()异步{
等待Firebase.initializeApp();
QuerySnapshot QuerySnapshot=wait FirebaseFirestore.instance.collection(“Org”).get();
list=querySnapshot.docs;
打印(列表);
list.forEach((数据)=>打印(数据));
}
更新

StreamBuilder(
    stream: FirebaseFirestore.instance.collection("Org").get();
    builder: (BuildContext context,
        AsyncSnapshot<QuerySnapshot> snapshots) {
      if (snapshots.connectionState == ConnectionState.active &&
          snapshots.hasData) {
        print(snapshots.data);
        return ListView.builder(
          itemCount: snapshots.docs.length,
          itemBuilder: (BuildContext context, int index) {
            DocumentSnapshot doc = snapshots.data[index];
            Map data= doc.data;//This is your data
            return Text(
              data.toString(),
            );
          },
        );
      } else {
        return Center(child: CircularProgressIndicator());
      }
    },
  ),
StreamBuilder(
流:FirebaseFirestore.instance.collection(“Org”).get();
生成器:(BuildContext上下文,
异步快照(快照){
如果(snapshots.connectionState==connectionState.active)&&
快照(hasData){
打印(快照、数据);
返回ListView.builder(
itemCount:snapshots.docs.length,
itemBuilder:(构建上下文,int索引){
DocumentSnapshot doc=快照.数据[索引];
Map data=doc.data;//这是您的数据
返回文本(
data.toString(),
);
},
);
}否则{
返回中心(子项:CircularProgressIndicator());
}
},
),

在initState()中,您在哪里调用组织()?在super.initState()之后调用其他方法否,这将提供帮助。它仍然返回实例,而不是值请upvote并接受这个答案,如果它有帮助:)这也没有帮助。我认为您必须在Streambuilder的生成器中做一些小的更改才能使其工作
final List<DocumentSnapshot> list;

void organisation() async {
    await Firebase.initializeApp();
    QuerySnapshot querySnapshot = await FirebaseFirestore.instance.collection("Org").get();
    list = querySnapshot.docs;
    print(list);
    list.forEach((data) => print(data));
  }

StreamBuilder(
    stream: FirebaseFirestore.instance.collection("Org").get();
    builder: (BuildContext context,
        AsyncSnapshot<QuerySnapshot> snapshots) {
      if (snapshots.connectionState == ConnectionState.active &&
          snapshots.hasData) {
        print(snapshots.data);
        return ListView.builder(
          itemCount: snapshots.docs.length,
          itemBuilder: (BuildContext context, int index) {
            DocumentSnapshot doc = snapshots.data[index];
            Map data= doc.data;//This is your data
            return Text(
              data.toString(),
            );
          },
        );
      } else {
        return Center(child: CircularProgressIndicator());
      }
    },
  ),