firebase - Flutter Firebase Filestore - 投射返回的列表进入列表
问题描述
我正在从我的 firebase 数据库中取回 BaseObjects 列表。这工作正常。
在这些对象上是一个 CustomObjects 数组。
返回 BaseObjects 列表时,我还想将自定义对象转换为实际的 CustomObject 列表。
所以在firebase数据库上:
BaseObject:
title: 'example'
custom_objects: // array
0
'name 0'
1
'name 1'
在我的应用程序中,我有一个 BaseObject 和 CustomObject 的模型文件
因此,当我检索 BaseObjects 列表时,它工作正常。问题是如果我尝试在每个 BaseObject 中获取 CustomObjects 数组。
Stream<List<BaseObject>> get baseObjects {
return baseObjectCollection.snapshots().map(_baseObjectListFromSnapshot);
}
List<BaseObject> _baseObjectListFromSnapshot(QuerySnapshot snapshot) {
return snapshot.documents.map((doc) {
final baseObject = BaseObject(
title: doc.data['title'] ?? '',
customObjects: List<CustomObject>.from(doc.data['custom_objects']) ?? [],
);
return baseObject;
}).toList();
}
我得到的错误:
Exception:
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'CustomObject'
更新:
I fixed it by doing:
customObjects: List<CustomObject>.from(doc.data["custom_objects"].map((item) {
return new CustomObject(
title: item["title"] ?? '',
);
},),) ?? [],
解决方案
更新:
我通过以下方式修复了它:
customObjects: List<CustomObject>.from(doc.data["custom_objects"].map((item) {
return new CustomObject(
title: item["title"] ?? '',
);
},
),
) ?? [],
推荐阅读
- windows-10 - 如何将回收站添加为 Windows 10 任务栏中的工具栏?
- jhipster - JHipseter 中的语言环境
- docker - 在 Window 的 Ubuntu WSL 上安装 Docker 时遇到问题
- android - 由于 macos big sur 上的内部错误,Android 模拟器关闭
- kubernetes - no_proxy 在 K8S 上不起作用 - Docker 映像 - YAML
- css - 将“最小内容”转换为像素
- mysql - 为什么我在此重划查询中收到“缺少参数”的错误消息?
- tensorflow - TypeError:层的输入应该是张量。得到:
我正在尝试使用 tf 数据管道从几个文件中读取数据并训练多输入神经网络。我成功地训练了模型,但是当我想测试模型时,我得到了这个错误:
TypeError: Inputs to a layer should be tensors. Got: <PrefetchDataset shapes: (((None, None),
- laravel - 发布视图计数不会在 laravel 上增加
- python - (Python)如何从字符串中提取数字(没有正则表达式)?