【问题标题】:Flutter: stuck getting collection from Firestore [closed]颤振:卡住从 Firestore 收集 [关闭]
【发布时间】:2022-01-21 03:14:35
【问题描述】:
DocumentReference ref = FirebaseFirestore.instance
        .collection('invoices')
        .doc(authService.getUser().uid); // or non existing ID

    // here works if I return {}

    final doc = await ref.get();
    final data = doc.data();

当使用模拟器或真实设备(通过 USB 连接)在本地尝试时工作正常,但在已发布的应用程序中,等待将永远存在。

这在更新到 Flutter 2.8 之前也可以正常工作,但现在它只在 Android 上失败了

【问题讨论】:

  • 你处理可能的异常吗?
  • 您的文档的字面意思是“authService.getUser().uid”,确切的字符串?
  • @DougStevenson 很好,我正在使用错误的 ID 进行测试以检查我得到了什么,但无论如何都与错误无关
  • @Riwen 我处理可能的 null Map savedCompanyInfo = data != null ?数据为 Map : {};但那有什么例外呢?它总是返回一些东西,对吧?
  • 我是否应该重新发布我的评论作为答案以便您接受?

标签: firebase flutter google-cloud-firestore flutter-dependencies


【解决方案1】:

重新发布我的 cmets 似乎有帮助:

您应该处理可能的异常。 get 方法返回Future 的实例,该实例可能会出现错误。在等待它时,它可能会抛出。

【讨论】:

  • 我的回答中的具体代码
【解决方案2】:

我把所有东西都放在一个 trycatch 中

试试{ DocumentReference ref = FirebaseFirestore.instance .collection('发票') .doc(authService.getUser().uid);

      final doc = await ref.get();
      final data = doc.data();

      Map savedCompanyInfo = data != null ? data as Map<String, dynamic> : {};
      myRents.companyInfo = savedCompanyInfo;

      return savedCompanyInfo;
    } catch (e) {
      return {};
    }

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 2020-12-23
    • 2018-11-06
    • 2020-07-13
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多