- 此问题在此处已有答案**:
FLUTTER The operator '[]' isn't defined for the type 'Object'(1个答案)
3天前关闭。
我想从一个数组字段中获取值。
但我得到了一个错误
没有为类型"Object"定义运算符"[]"。(文档)请尝试定义运算符"[]"。from this code
var followedSitesList = www.example.com()!["followedSites"];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"];
});
});
});
}}));
});
});
}
1条答案
按热度按时间wa7juj8i1#
问题就在这里:
正如错误消息所说,这里的
value.data()!
是一个Object
,您可以在对象上调用["followedSites"]
。您知道
value.data()!
是一个Map
,因此应该使用以下命令告诉编译器:另见: