当前位置: 首页 > 知识库问答 >
问题:

DateTime不是Timestamp/Unhanded Exception类型的子类型:无效参数:'Future的实例

凌轶
2023-03-14

因此,我使用附近的连接API来发现我周围的设备,并将它们的数据存储在firestore中,然而,我不断收到2个警告,关于我从我接触的用户那里获得的位置和我接触它们的时间

以下是两个警告:

void discovery() async {
    try {
      bool a = await Nearby().startDiscovery(loggedInUser.email, strategy,
          onEndpointFound: (id, name, serviceId) async {
        print('I saw id:$id with name:$name'); // the name here is an email

        var docRef =
            _firestore.collection('users').document(loggedInUser.email);

        //  When I discover someone I will see their email
        docRef.collection('met_with').document(name).setData({
          'email': await getUsernameOfEmail(email: name),
          'contact time': DateTime.now() as Timestamp ,
          'contact location': location.getLocation(),
        });
      }, onEndpointLost: (id) {
        print(id);
      });
      print('DISCOVERING: ${a.toString()}');                                                      
    } catch (e) {
      print(e);
    }
  }
void addContactsToList() async {
    await getCurrentUser();
    _firestore
        .collection('users')
        .document(loggedInUser.email)
        .collection('met_with')
        .snapshots()
        .listen((snapshot) {

   for (var doc in snapshot.documents) {
        String currEmail = doc.data['email'];
        DateTime currTime = doc.data.containsKey('contact time')
            ? (doc.data['contact time'] as Timestamp).toDate()
            : null;
        String currLocation = doc.data.containsKey('contact location')
            ? doc.data['contact location']
            : null;
        String _infection = doc.data['infected'];
        if (!contactTraces.contains(currEmail)) {
          contactTraces.add(currEmail);
          contactTimes.add(currTime);
          contactLocations.add(currLocation);
          infection.add(_infection);
        }
      }
      setState(() {});
      print(loggedInUser.email);
    });
  }

请问有什么办法吗?

共有1个答案

商品
2023-03-14

使用异步函数将Future的<.LocationData.>转换为LocationData。

     var data;
 void convertData() async{
 var futuredata = await FutureLocationData;

 setState(() {
  data = futuredata   });
 }
 类似资料:
  • 我正在为我的团队和我正在工作的应用程序寻找一些帮助。几个星期以来,我们都面临着以下问题: null 问题不应该来自云Firestore和应用程序之间的链接,因为我们可以获得其他存储的信息。

  • 我是个新手。当我运行代码时,我得到一个错误:“Future”类型不是“List”类型的子类型。如果我改变屏幕,我将得到错误:NoSuchMethodError:方法“map”被调用为null。我怎样才能解决它?谢谢你帮助我。

  • 我正在获取cloud firestore的数据&试图通过使用下面的代码在我的应用程序中显示。 我正在使用dart包对其进行格式化。但是,在更新了最新的云firestore插件后,我得到了这个错误- 无法理解如何将此“timestamp”对象解析为“datetime”。因为插件需要DateTime对象格式的数据。

  • 当我运行我的代码时,它返回了错误:类型“Future”不是类型转换中“List”类型的子类型。我该如何修复它?它是在我从Firebase获取数据之前匹配引擎运行的?我试图将wait添加到List demoProfiles=getdata()作为wait List;但它返回错误。我真的是新手,这个问题已经困扰了我一整天。请帮帮我

  • 我对弗利特和我是新手;我一直在尝试开发一款带有PHP API后端的应用程序。在无数的答案和在线研究中,我无法找到解决我所面临问题的方法。我希望有人能告诉我我做错了什么。 我试图从API中获取数据,并将其显示在卡中。下面是我的代码: 希望能得到一些帮助。非常感谢。