自Flutter [duplicate]更新以来,未为类型“Object”定义运算符“[]”

yyyllmsg  于 2023-06-30  发布在  Flutter
关注(0)|答案(2)|浏览(127)

此问题已在此处有答案

Firebase Firestore Error: The operator '[]' isn't defined for the class 'Object'(4个答案)
两年前关闭。
休息几个月后,我又开始做我的项目了。我更新了Flutter版本,现在我不能再运行我的应用程序了。我得到了很多错误。
我已经做了一些谷歌搜索,但我没有找到一个明确的解决方案。你的帮助将不胜感激。非常感谢。

child: Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                  
                        children:
                        snapshot.data.docs.map((documentSnapshot) {
                        print(documentSnapshot.data());

                        recordID = documentSnapshot.id; 
                          return Text(documentSnapshot
                              .data()['task_Name']); //Error is The operator '[]' isn't defined for the type 'Object'.
                        }
                        ).toList(),
                      ),
cyej8jka

cyej8jka1#

您需要从cloud_firestore2.0.0指定您希望从DocumentSnapshot获得的数据类型。
查看迁移指南。
你应该将你的代码更新为:

Map<String, dynamic> snapshotData = documentSnapshot.data() as Map<String, dynamic>;
    return Text(snapshotData['task_Name']);
cnjp1d6j

cnjp1d6j2#

通过观察你的数据和代码,我认为documentsnapshot.data()包含的对象不是json数据。
无论何时调用documentSnapshot.data()[“task_Name”],都会抛出错误
这是我在您提供的代码中发现的问题
请通过打印确认您的documentsnapshot.data()包含哪些内容。

相关问题