【问题标题】:flutter firebase get array from Firestore and assign it to a listflutter firebase 从 Firestore 获取数组并将其分配给列表
【发布时间】:2020-11-15 09:37:22
【问题描述】:

我在 Firestore 中有一个收藏。它有一个字段数组,我试图从 Firestore 获取数组并将其分配给颤动的列表。 我的收藏如下

我从 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();
  }

我得到这个错误类型'String'不是'Offset'类型的子类型

【问题讨论】:

  • 好像value.data['point']不能转换成List&lt;Offset&gt;...你能说明一下value.data['point']是什么吗?

标签: firebase flutter google-cloud-firestore


【解决方案1】:

你做错的事情是这样的:

// You have initialised your List as a Offset Object Type
List<Offset> pointList;

其次,如果您仔细查看该 Firebase,您分配的数据是 String

"Offset(x,y)"

最后,尝试将String 值分配给Offset class/object 类型的List

如果你想让它工作,那么要么将 List 类型设为 String,然后将其添加到 List

List<String> pointlist = List.from(value.data['point']); 

或者先像这样将数据添加到Offset Object中,然后传给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);
      });

      });
   });
  }

摘要

始终查找您提供给List 的数据类型,如果您尝试添加不是TList&lt;T&gt; 类型的数据,您将始终收到此类型不匹配的错误。希望这会给你一些关于编程的清晰和一些基本概念。继续学习:)

【讨论】:

  • 乐于帮助@RavitejaReddy :)
  • 有个小问题.Offset需要两个数据dx,dy .List.from(value.data['point']).forEach((element){ Offset data = new Offset(element) ; 但是在这里我们只给出一个参数,它给出了一个错误,说需要 2 个位置参数
  • 是的@RavitejaReddy 我刚刚解释了你为什么会遇到这个问题。我没有完全访问代码的权限。现在我们可以继续处理这种情况。问题是,元素仅从您的火力库中获取此数据,"Offset(dx, dy)"。如果你想传递这些数据,那么,是否可以在你的 Firebase 中只存储 dx 和 dy 这样的 [dx, dy],或者 Offset(dx, dy) 是强制性的
  • 嘿,知道了。我将 dx 和 dy 保存在两个数组中,并将它们作为偏移量调用回来,它起作用了。谢谢
  • 伟大的@RavitejaReddy,很高兴为您提供帮助或为您提供一些指导。一切顺利:)
猜你喜欢
  • 1970-01-01
  • 2020-03-06
  • 2019-02-26
  • 2021-10-12
  • 2018-05-18
  • 2022-09-23
  • 2019-02-04
  • 1970-01-01
  • 2017-11-29
相关资源
最近更新 更多