【发布时间】:2022-01-26 19:09:34
【问题描述】:
我正在尝试根据 this documentation 从我的 Firebase 云存储项目下载 .mp3,但按下提升按钮(Android 模拟器)没有任何作用。当我什么都不说时,我在调用 getApplicationDocumentsDirectory() 后立即添加的打印语句永远不会输出到控制台。这个简单的代码逐字逐句来自 Firebase 文档,我错过了什么?我在 AndroidManifest 中添加了允许 INTERNET 和 WRITE_EXTERNAL_STORAGE 的权限。
fs.FirebaseStorage storage = fs.FirebaseStorage.instance;
ElevatedButton(
onPressed: () {
Future<void> download() async {
Directory dir = await getApplicationDocumentsDirectory();
print("File downloading to : ${dir}");
File file = File(
'${dir.path}/track-title');
fs.DownloadTask task = storage
.ref(
'gs://project_name.appspot.com/track-title')
// 'project_name/track-title' as shown in docs also does not work
.writeToFile(file);
task.snapshotEvents.listen((fs.TaskSnapshot snapshot) {
print('Task state: ${snapshot.state}');
print(
'Progress: ${(snapshot.bytesTransferred / snapshot.totalBytes) * 100} %');
}, onError: (e) {
// The final snapshot is also available on the task via `.snapshot`,
// this can include 2 additional states, `TaskState.error` & `TaskState.canceled`
print(task.snapshot);
if (e.code == 'permission-denied') {
print(
'User does not have permission to upload to this reference.');
}
});
}
},
child: Text("Track Title")),
【问题讨论】:
-
您的代码定义了一个名为
download的函数,但您实际上是在任何地方调用该函数吗?
标签: android firebase flutter dart firebase-storage