gpt4 book ai didi

firebase - Flutter Firebase Filestore-将返回的List 强制转换为List

转载 作者:行者123 更新时间:2023-12-03 04:48:55 25 4
gpt4 key购买 nike

我正在从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"] ?? '',
);
},
),
) ?? [],

关于firebase - Flutter Firebase Filestore-将返回的List <dynamic>强制转换为List <CustomObject>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61744966/

25 4 0