我正在try 获取FiRestore集合中的文档数.我已经按照FiRestore文档中给出的例子进行了操作,但我总是得到一个奇怪的结果.我肯定我错过了一些简单的东西,但我想不出它是什么.

以下是调用代码:

class GetTransactionsCount extends ConsumerWidget {
  const GetTransactionsCount({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final uid = ref.watch(authStateChangesProvider).value!.uid;
    final auth = ref.watch(authServicesProvider);
    final db = FirebaseFirestore.instance;
    String tCount = db
        .collection('users/$uid/transactions')
        .count()
        .get()
        .then(
          (value) => value.count.toString(),
        )
        .toString();

    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Text(tCount),
        hgap(10),
        Text('transactions'),
      ],
    );
  }
}

这就是我得到的:

Screenshot

推荐答案

获取计数需要调用服务器,并且是一个异步操作,这意味着它将返回Future.

若要显示Future英寸Flutter 、use a FutureBuilder英寸的小工具的值.

您还希望将执行此操作的小部件设置为StatefulWidget,将对FiRestore的调用放在其initState method中,并将tCount设置为州的字段.

Flutter相关问答推荐

未处理异常:字符串类型不是值类型子类型的子类型'

如何更改ElevatedButton的 colored颜色 以按下它?

无法在GroupButton内部正确呈现

如何为Android 12及以上设备以及Android 11及以下设备动态处理Splash Screen?如果可能的话没有包裹

Flutter 翼doctor 显示的错误,我似乎不能修复.问题:系统32、Android工具链、Windows 10 SDK

Android Studio中的Ffltter&;Couchbase:进程C:/Program Files/Git/bin/bash以非零退出值35结束

如何防止onTapCancel由子元素触发?

将记录/元组用作SplayTreeMap中的键

Ffltter Firebase向用户添加公司

flatter_localizations错误在Null值上使用了Null判断运算符

flutter Listview构建器溢出

不使用 GlobalKey 仍然收到 GlobalKey 被多次使用的错误

为什么我们使用 RiverpodGenerator

如何将行推到列的底部

如何在 flutter 中使用带有有效负载数据的重定向来执行 firebase 推送通知.?

Flutter 构建方法使用的是旧版本的变量?

在 Dart 中使用隔离时访问外部范围内的变量

Flutter - 定义按钮的优雅方式

如何在 Flutter 中创建 Facebook 创建帖子屏幕?

未处理的异常:FileSystemException:无法打开文件,路径 = 'assets/res.zip'(操作系统错误:没有这样的文件或目录,errno = 2)