我想从数组字段中获取值。
但我收到一个错误
没有为类型“Object”定义运算符“[]”。 (文档)尝试定义运算符“[]”。from this code
var followSitesList = value.data()!["followedSites"];
getNotificationData(BuildContext context) {
CollectionReference notReference = FirebaseFirestore.instance.collection("notifications");
CollectionReference siteReference = FirebaseFirestore.instance.collection("sites");
CollectionReference userReference = FirebaseFirestore.instance.collection("users");
FirebaseMessaging messaging = FirebaseMessaging.instance;
messaging.getToken().then((value) {
userReference.snapshots().forEach((users) {
print(users.docs.map((user) {
if(user["userToken"] == value ){
siteReference.snapshots().forEach((sites) {
sites.docs.map((site) {
userReference.doc(user.id).get().then((value) {
var followedSitesList = value.data()!["followedSites"];
});
});
});
}}));
});
});
}
问题就在这里:
value.data()!["followedSites"]
正如错误消息所示,value.data()!
这是一个Object
你可以打电话["followedSites"]
在一个物体上。
你懂的value.data()!
is a Map
,所以你应该告诉编译器:
var values = value.data()! as Map;
var followedSitesList = values["followedSites"]
另请参阅:
- 没有为“Object”类定义运算符“[]”。镖
- Dart:未为类型“对象”定义运算符“[]”?功能()'。尝试定义运算符“[]”
- FLUTTER 未为类型“Object”定义运算符“[]”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)