【发布时间】:2021-11-16 06:18:55
【问题描述】:
我制作了一个视频播放器应用程序,我从这个 YouTube 视频中看到了一个示例。 https://www.youtube.com/watch?v=3gU1OLKBcys&t=739s
但我面临这个问题
没有为“Object”类型定义“forEach”方法。 尝试将名称更正为现有方法的名称,或定义名为“forEach”的方法。
我该如何解决?或者有什么方法可以帮助我?
@override
void initState() {
linkRef = FirebaseFirestore.instance.collection('links').doc('urls');
super.initState();
getData();
print(videoID);
}
_addItemFuntion() async {
await linkRef.set({
_addItemController.text.toString(): _addItemController.text.toString()
}, SetOptions(merge: true));
Flushbar(
title: 'Added',
message: 'updating...',
duration: Duration(seconds: 3),
icon: Icon(Icons.info_outline))
..show(context);
setState(() {
videoID.add(_addItemController.text);
});
print('added');
FocusScope.of(this.context).unfocus();
_addItemController.clear();
}
getData() async {
await linkRef
.get()
.then((value) => value.data()?.forEach((key, value) {
if (!videoID.contains(value)) {
videoID.add(value);
}
}))
.whenComplete(() => setState(() {
videoID.shuffle();
showItem = true;
}));
}
}
【问题讨论】:
-
您是否尝试过强制转换特定类型:(value.data()? as Map
).forEach... -
你试过在 forEach() 之前添加 .toList()
-
感谢 cmets,您有示例或指南吗?我已经尝试修复它,但它不起作用。我是初学者