我正在进行一个项目,我想将文件上传到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');
}
您拼错了全局变量(urlDownlaod
与urlDownload
(。您还将下载url分配给uploadFile函数中的本地变量。尝试更正名称并删除第128行的final
关键字。
只是一个提示:您可以从uploadFile返回下载url,而不是将其作为类范围的变量,因为您没有在其他地方使用它。在我看来,它稍微降低了复杂性。