【问题标题】:Android FireBase Storage Download - How to detect network interruptions?Android FireBase 存储下载 - 如何检测网络中断?
【发布时间】:2018-04-21 08:51:21
【问题描述】:

我正在尝试使用 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());
            }
        });

感谢您的帮助!

【问题讨论】:

    标签: java android firebase firebase-storage


    【解决方案1】:

    适用于 Cloud Storage 的 Firebase SDK 具有容错能力。它将重试并恢复正在进行的下载,以期恢复网络连接(这对于移动设备很常见)。

    如果您想在网络断开时停止下载,您必须自行检测断开连接,然后取消下载。

    【讨论】:

    • 但是当我在下载文件时打开飞行模式然后再次关闭它不会继续下载,它只是卡住了。
    • 如果它没有做你认为应该做的事情,请提交一份错误报告,并附上你的重现步骤。 firebase.google.com/support/contact/bugs-features
    猜你喜欢
    • 2016-10-14
    • 2016-09-26
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2017-07-18
    • 1970-01-01
    相关资源
    最近更新 更多