【问题标题】:How to manage multiple uploads/downloads in firebase storage?如何管理 Firebase 存储中的多个上传/下载?
【发布时间】:2018-08-19 02:01:25
【问题描述】:

我目前正在从事具有某种文件上传/下载操作并使用 Firebase Storage 作为后端存储服务的项目。为了更好的用户体验,需要显示上传下载的状态,例如成功上传、上传失败和上传progress.but 问题在于管理多个文件的上传/下载。我试着像这样工作

List<UploadTask> uploadTasksList;

但这不能很好地管理操作。有没有其他方法可以正确管理下载/上传。 或者是否有一些我可以用来管理的图书馆。 请帮忙!

【问题讨论】:

    标签: java android firebase firebase-storage


    【解决方案1】:

    看起来Task 类型的API 公开了一些方便的方法,用于将其他Tasks 的执行链接在一起:

    • continueWithTask(Continuation&lt;TResult, Task&lt;TContinuationResult&gt;&gt; continuation)

    ...甚至是其他一些任意逻辑:

    • continueWith(Continuation&lt;TResult, TContinuationResult&gt; continuation)

    给定两个UploadTasks,前者的用法可能如下所示:

    final UploadTask task1 = storageReference1.putBytes(bytes1);
    final UploadTask task2 = storageReference2.putBytes(bytes2);
    
    task1.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<UploadTask.TaskSnapshot>>() {
        @Override
        public Task<UploadTask.TaskSnapshot> then(@NonNull Task<UploadTask.TaskSnapshot> task) {
            return task2;
        }
    });
    

    ...或者,更简洁地使用 lambda 语法:

    final UploadTask task1 = storageReference1.putBytes(bytes1);
    final UploadTask task2 = storageReference2.putBytes(bytes2);
    
    task1.continueWithTask(task -> task2);
    

    如果您沿着这条路走下去,也值得您花时间阅读 Continuation 类型上的 docs - 特别是关于错误处理的内容。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2019-11-04
      • 2017-07-08
      • 2019-03-24
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 2021-04-14
      • 1970-01-01
      相关资源
      最近更新 更多