我正在尝试使用 Streambuilder 接收数据并将该数据转换为我的模型的 json 但出现以下错误;所以我的问题是如何将流数据从 firebase 转换为 json
错误
type 'QueryDocumentSnapshot' is not a subtype of type 'Map<dynamic, dynamic>'
Run Code Online (Sandbox Code Playgroud)
模型的FromJson方法
factory Review.fromJson(Map<dynamic, dynamic> json) => Review(
//Bunch of random fields here);
Run Code Online (Sandbox Code Playgroud)
流生成器
StreamBuilder<Object>(
stream: widget.reviewStream,
builder: (context, AsyncSnapshot snapshots) {
if (snapshots.hasData) {
var data = snapshots.data.docs;
return ListView.builder(
shrinkWrap: true,
itemCount: data.length,
itemBuilder:
(BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 12.0),
child: Padding(
padding:
const EdgeInsets.all(8.0),
child: ReviewBox(
review: Review.fromJson(
data[index]),
user: widget.user,
)),
);
},
);
} else {
return Text('No Data');
}
}),
Run Code Online (Sandbox Code Playgroud)
您需要调用data()方法来data[index]获取Map<String, dynamic>,因为它data[index]是一个QueryDocumentSnapshot。
Review.fromJson(data[index].data());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4407 次 |
| 最近记录: |