首页 > 解决方案 > Flutter Firestore await .getDocuments 花了 30 分钟

问题描述

我称这个查询

    print("JJJason Button querying Firestore min data");
    var querySnapshot = await Firestore.instance
        .collection('devices')
        .document(widget.deviceId)
        .collection('min')
        .orderBy('timestamp', descending: true)
        .limit(1)
        .getDocuments();

    print("JJJason Button Firestore query requested");
    var requestedSampleNum = 0;
    if ((querySnapshot != null) && (querySnapshot.documents != null) && (querySnapshot.documents.length > 0)) {
      var document = querySnapshot.documents.first;
      requestedSampleNum = int.parse(document.documentID);
      requestedSampleNum ~/= 60;
      requestedSampleNum += 1;
      print("JJJason Button requestedSampleNum from Firestore is $requestedSampleNum");
    } else {
      print("JJJason Button requestedSampleNum not found in Firestore so it is $requestedSampleNum");
    }

数据库没有一个名为“min”的集合(还没有),所以我希望它几乎可以立即返回,但它实际上花了大约 30 分钟。从 9:50 到 10:19

2020-09-30 09:50:33.805 17068-17108/com.abcabc.abccccc I/flutter: JJJason Button pressed
2020-09-30 09:50:33.806 17068-17108/com.abcabc.abccccc I/flutter: JJJason Button querying Firestore min data
2020-09-30 10:19:42.533 17068-17108/com.abcabc.abccccc I/flutter: JJJason Button Firestore query requested
2020-09-30 10:19:42.534 17068-17108/com.abcabc.abccccc I/flutter: JJJason Button requestedSampleNum not found in Firestore so it is 0

似乎有一个内置的 30 分钟超时。我应该在每个 Firestore 调用中添加 .timeout(Duration(seconds:magicNumberOfSeconds)) 吗?

任何帮助或建议都将不胜感激。

-杰森

编辑:添加请求的屏幕截图

在此处输入图像描述

标签: fluttergoogle-cloud-firestore

解决方案


您是否尝试过将一些虚拟数据添加到 min 集合中,然后看看会发生什么?这会让您更好地了解正在发生的事情(是网络问题、Firebase 问题等)


推荐阅读