我尝试使用FirebaseStorage下载较大的文件。
我的问题:当连接丢失时,下载时没有任何错误或任何错误,即使我重新连接,也没有任何反应。 当连接丢失时,在下载开始之前,OnFailure-Event将触发以下错误:"已超出操作重试限制。"。
为什么在下载时连接丢失时不会发生这种情况?
我的代码:
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReference();
storage.setMaxDownloadRetryTimeMillis(5000);
StorageReference islandRef = storageRef.child(download_link);
final File localFile = new File(files_dir, filename);
islandRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
// Local temp file has been created
Log.w( "Download", "Download done. File:" + localFile.toString());
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
Log.w("Download", "Error. Message: " + exception.getMessage());
}
});
感谢您的帮助!
答案 0 :(得分:1)
适用于云存储的Firebase SDK具有容错功能。它将重试并恢复正在进行的下载,希望网络连接将返回(这对移动设备很常见)。
如果您想在网络连接丢失时停止下载,则必须自行检测连接丢失情况,然后取消下载。