Flutter 颤振:在Firebase存储中删除文件之前检查该文件
我有一个从Firebase存储中删除文件的功能,如下所示:Flutter 颤振:在Firebase存储中删除文件之前检查该文件,flutter,firebase-storage,Flutter,Firebase Storage,我有一个从Firebase存储中删除文件的功能,如下所示: void _deleteFileFromStorage(String fileName) async { await FirebaseStorage.instance.ref().child(fileName).delete(); } 删除该文件是成功的,但当要删除的文件在Firebase存储中不存在时,将导致错误,并将堆栈在删除函数中(\u deleteFileFromStorage),并且不会运行(传递)到函数/下一个进程,如
void _deleteFileFromStorage(String fileName) async {
await FirebaseStorage.instance.ref().child(fileName).delete();
}
删除该文件是成功的,但当要删除的文件在Firebase存储中不存在时,将导致错误,并将堆栈在删除函数中(\u deleteFileFromStorage
),并且不会运行(传递)到函数/下一个进程,如下所示:
onPressed: () async {
await _progressDialog.update(message: 'Deleted Resume...');
await _progressDialog.show();
await _deleteFileFromStorage(widget.attachmentsEntity.name); // If the file doesn't exist, the process stuck in here
await _deleteDataFromFirebase(); // This function and below will not run because it causes an error in the delete function (the file does not exist)
if (widget.resume.length == 1) {
setState(() {
choices.add(Choice(title: RESUME, index: 0));
});
}
await _progressDialog.hide();
Navigation.back(context);
},
因此,问题是:
\u deleteFileFromStorage
删除文件之前,是否可以先检查文件var file = storageRef
.child('fileName');
if(file != null){
storageRef
.child('fileName').delete();
}else{
print('Does not exist');
}
你可以打电话给推荐人。如果完成并返回元数据对象,则该文件存在。如果产生错误,则可以假定该文件不存在,或者客户端没有删除该文件的权限
就个人而言,我只需从
delete()
记录错误,然后继续。我通过在\u deleteFileFromStorage
上使用try
和catch
修复了它。因此,当文件不存在时(错误),它将继续运行下一个进程。如果你们有任何选择来回答这个问题,请回答1号或2号。只需一个头:)这行不通。它只是检查引用对象是否为null。这并不意味着该文件存在于云存储中。文件名在存储中如何,它将如何不存在。您可以构建对不存在的文件的引用。这实际上就是你执行上传的方式。引用对象只是一个路径,而不是一个实际的文件。链接现在是404'd-更新的链接:截止到现在不工作截止到现在不工作