Flutter 类型';未来<;动态>';不是类型为';列表<;动态>';内铸

Flutter 类型';未来<;动态>';不是类型为';列表<;动态>';内铸,flutter,dart,Flutter,Dart,我试图从firestore中获取一个确定集合中的所有文档,然后,我想将它们设置在一个文档列表中,该列表的每个位置代表一个文档。但是,当我编写代码时,我收到了以下错误: 类型“Future”不是类型转换中类型“List”的子类型 import'包:cloud_firestore/cloud_firestore.dart'; 高级餐厅{ 字符串关键字; 字符串状态; 字符串地址; 字符串城市; 综合评价; 字符串图像; 字符串电话; 双重评级; 串表; 字符串文本; 字符串标题; 餐厅({ 这个关键

我试图从firestore中获取一个确定集合中的所有文档,然后,我想将它们设置在一个文档列表中,该列表的每个位置代表一个文档。但是,当我编写代码时,我收到了以下错误:

类型“Future”不是类型转换中类型“List”的子类型

import'包:cloud_firestore/cloud_firestore.dart';
高级餐厅{
字符串关键字;
字符串状态;
字符串地址;
字符串城市;
综合评价;
字符串图像;
字符串电话;
双重评级;
串表;
字符串文本;
字符串标题;
餐厅({
这个关键字,
这个州,
这个地址,
这个城市,
这就是我们的评价,
这个,这个形象,,
这个电话,
这个.评级,,
这个时间表,
这个文本,
这个名字
});
factory Restaurant.fromDatabase(文档快照文档){
回程餐厅(
关键字:文档[“关键字”]作为字符串,
状态:文档[“状态”]为字符串,
地址:文档[“地址”]作为字符串,
城市:文档[“城市”]作为字符串,
评估:文件[“评估”],
图像:文档[“图像”]作为字符串,
电话:文档[“电话”]作为字符串,
评级:文件[“评级”],
计划:文档[“计划”]作为字符串,
文本:文档[“文本”]作为字符串,
标题:文档[“标题”]作为字符串
);
}
}
import'包:cloud_firestore/cloud_firestore.dart';
导入“包装:cruke_app/restaurant.dart”;
类RestaurantsViewModel{
静态列表餐厅;
静态列出所有文档;
静态loadDocuments()异步{
var documents=await Firestore.instance.collection('restaurant').getDocuments();
归还文件;
} 
静态未来加载()异步{
试一试{
餐厅=新列表();
allDocuments=新列表();
var documents=loadDocuments()作为列表;
documents.forEach((动态快照){
添加(快照);
});
for(int i=0;i
您需要在
未来
呼叫之前添加
等待
关键字:

var documents=wait loadDocuments()作为列表;
此外,还需要更改
loadDocuments()
方法的返回,如下所示:

static loadDocuments()异步{
var documents=await Firestore.instance.collection('restaurant').getDocuments();
return documents.documents;//返回一个列表
} 

我这样做了,结果是:类型“QuerySnapshot”不是类型中“List”类型的子类型cast@RafaelCanuto我对答案又加了一个修正。