Rav*_*ddy 5 firebase flutter google-cloud-firestore
我在 Firestore 中有一个集合。它有一个字段数组,我试图从 Firestore 获取该数组并将其分配给 flutter 中的列表。我的收藏如下
我从 Firestore 获取数据的代码
List<Offset> pointlist = <Offset>[];
getdata() async{
await Firestore.instance.collection("points").document('biZV7cepFJA8T6FTcF08').get().then((value){
setState(() {
List<Offset> pointlist = List.from(value.data['point']);
});
});
}
@override
void initState() {
super.initState();
getdata();
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误类型“String”不是“Offset”类型的子类型
你做错的事情是这样的:
// You have initialised your List as a Offset Object Type
List<Offset> pointList;
Run Code Online (Sandbox Code Playgroud)
String其次,如果您仔细查看该 firebase,则您分配的数据是 a 。
"Offset(x,y)"
Run Code Online (Sandbox Code Playgroud)
最后,尝试将
String值分配给 aListof 类型Offset class/object
如果你想让它工作,那么要么创建 of
List类型String,然后将其添加到List
List<String> pointlist = List.from(value.data['point']);
Run Code Online (Sandbox Code Playgroud)
或者先像这样将数据添加到Offset对象中,然后将其传递给List
List<Offset> pointList = <Offset>[];
getdata() async{
await Firestore.instance.collection("points").document('biZV7cepFJA8T6FTcF08').get().then((value){
setState(() {
// first add the data to the Offset object
List.from(value.data['point']).forEach((element){
Offset data = new Offset(element);
//then add the data to the List<Offset>, now we have a type Offset
pointList.add(data);
});
});
});
}
Run Code Online (Sandbox Code Playgroud)
概括
始终查找您提供给 的数据类型List,如果您尝试添加不是 类型的数据T,List<T>您将始终收到类型不匹配的错误。希望这能让您对编程有一些清晰的认识和一些基本的想法。保持学习 :)
| 归档时间: |
|
| 查看次数: |
18631 次 |
| 最近记录: |