【问题标题】:The argument type 'User?' can't be assigned to the parameter type Future<Object?>?'参数类型“用户?”不能分配给参数类型 Future<Object?>?'
【发布时间】:2022-01-05 05:01:35
【问题描述】:

嘿,我是 Flutter 的新手,我目前正在使用 Flutter 开发 Firebase,我收到以下错误,参数类型为“用户?”不能分配给参数类型'Future?' ,future参数中futurebuilder中出现错误,

class messages extends StatelessWidget {
  const messages({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      builder: (ctx, AsyncSnapshot<QuerySnapshot> snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return Center(
            child: CircularProgressIndicator(),
          );
        }
        final chatdoc = snapshot.data!.docs;
        final userdata = FirebaseAuth.instance.currentUser;
        return FutureBuilder(
          future: userdata,
            builder: (ctx, Snapshot) => ListView.builder(
                  reverse: true,
                  itemBuilder: (ctx, index) => messagebubble(
                      chatdoc[index]['Text'], chatdoc[index]['userId']),
                  itemCount: snapshot.data!.docs.length,
                ));
      },
      stream: FirebaseFirestore.instance
          .collection('chats')
          .orderBy('createdAt', descending: true)
          .snapshots(),
    );
  }
}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    FirebaseAuth.instance.currentUser 返回 User? 而不是 Future。因此,您可以在没有 FutureBuilder 的情况下访问它,只需返回 messageBubble 小部件:

    return messageBubble(
     chatdoc[index]['Text'],
     userData?.uid)
    

    【讨论】:

      猜你喜欢
      • 2021-08-27
      • 2022-01-11
      • 2021-01-05
      • 1970-01-01
      • 2021-10-16
      • 2021-10-10
      • 2021-06-08
      • 2020-12-03
      • 2021-04-07
      相关资源
      最近更新 更多