颤振:卡住从 Firestore 收集 [关闭]

Posted

技术标签:

【中文标题】颤振:卡住从 Firestore 收集 [关闭]【英文标题】:Flutter: stuck getting collection from Firestore [closed] 【发布时间】: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 : ;但那有什么例外呢?它总是返回一些东西,对吧? 我是否应该重新发布我的评论作为答案以便您接受? 【参考方案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 ;
    

【讨论】:

以上是关于颤振:卡住从 Firestore 收集 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用颤振提供程序从 Firestore 获取数据?

颤振开发。通过 Stream Builder 从 Firebase Storage 和 Firestore 获取数据

如何将值添加到从颤振到 Firestore 的数组中

如何使用颤振和飞镖从 Cloud Firestore 检索特定数据?

如何从 Firebase Firestore 获取数据并将其存储在列表中以在颤振小部件中使用?

我如何在颤振中获得 Firestore 集合和子集合