为什么在给定的场景中,变量值没有从null更新为最新值



我正在进行一个项目,我想将文件上传到firebase存储,并将该url添加到firestore。我可以将变量urlDownload的更新值打印到控制台,但无法将其发送到firestore,相反,firestore中的相应字段显示为空值。我知道我基本上做错了什么,请帮我弄清楚。

这是代码的链接。主要观察第11,94128行中提到的变量urlDownload。https://pastebin.com/8HWXgS9b

.
.
class _MainPageState extends State<MainPage> {
UploadTask? task;
File? file;
String? urlDownload;
List<String> types = [
.
.
onPressed: () async {
await uploadFile();
await addFile(
_namecontroller.text,
dropdownValue,
urlDownload,
);
},
.
.
Future uploadFile() async {
.
.
final urlDownload = await snapshot.ref.getDownloadURL();
setState(() {});
print('Download-Link: $urlDownload');
}

您拼错了全局变量(urlDownlaodurlDownload(。您还将下载url分配给uploadFile函数中的本地变量。尝试更正名称并删除第128行的final关键字。

只是一个提示:您可以从uploadFile返回下载url,而不是将其作为类范围的变量,因为您没有在其他地方使用它。在我看来,它稍微降低了复杂性。

最新更新