【问题标题】:StreamBuilder Flutter FirebaseStreamBuilder Flutter Firebase
【发布时间】:2021-09-30 22:02:57
【问题描述】:

我正在尝试实现一个流构建器来显示来自 firebase 文档的字符串。 但是我收到以下错误“主体可能正常完成,导致返回‘null’,但返回类型可能是不可为空的类型。”在代码的第 3 行。不知道我做错了什么。有什么想法吗?

    StreamBuilder<QuerySnapshot>(
          stream: _firestore.collection('data').snapshots(),
          builder: (context, snapshot) { 
            if (snapshot.hasError) {
              return const ErrorWidget();
            }
            if (snapshot.hasData) {
              final messages = snapshot.data!.docs;
              List<Text> messageWidget = [];
              for (var message in messages) {
                final messageText = message.get('email');
                final messageWidget = Text('$messageText');
              }
              return Column(
                children: messageWidget,
              );
            }
          },
        )

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    在第二个 if 语句之后和之外添加另一个 return。因为目前您的流构建器仅在两个条件下返回,错误或 hasData。但是其他一切呢?比如等待?

    您可以在末尾添加return CircularProgressindicator(),它应该可以工作。

    【讨论】:

    • 编译完美的惊人!非常感谢。但是现在它什么都不显示,不知道为什么..
    • 不客气!你有任何 renderflex 错误吗?如果它正在编译,则意味着文本是白色的,或者您的列位于列表视图或其他内容中。将其从消息小部件更改为固定文本,看看会发生什么。展示的东西
    • 没错!非常感谢
    • 不客气,如果它解决了您的问题,请考虑将其标记为您帖子的正确答案,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2020-12-14
    • 2020-10-13
    • 2023-01-12
    • 2021-01-28
    • 1970-01-01
    相关资源
    最近更新 更多